Add more xdg stuff
This commit is contained in:
parent
19895e6049
commit
1435c02354
@ -124,19 +124,6 @@ func (config *Config) Load (name string) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var configHome string
|
|
||||||
configHome, err = getConfigHome()
|
|
||||||
if err != nil { return }
|
|
||||||
println(configHome)
|
|
||||||
|
|
||||||
configDirsString := os.Getenv("XDG_CONFIG_DIRS")
|
|
||||||
if configDirsString == "" {
|
|
||||||
configDirsString = "/etc/xdg/"
|
|
||||||
}
|
|
||||||
|
|
||||||
configDirs := strings.Split(configDirsString, ":")
|
|
||||||
configDirs = append(configDirs, configHome)
|
|
||||||
|
|
||||||
for _, directory := range configDirs {
|
for _, directory := range configDirs {
|
||||||
path := filepath.Join(directory, name, name + ".conf")
|
path := filepath.Join(directory, name, name + ".conf")
|
||||||
|
|
||||||
@ -247,10 +234,6 @@ func (config *Config) Save (name string) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var configHome string
|
|
||||||
configHome, err = getConfigHome()
|
|
||||||
if err != nil { return }
|
|
||||||
|
|
||||||
err = os.MkdirAll(configHome, 0755)
|
err = os.MkdirAll(configHome, 0755)
|
||||||
if err != nil { return }
|
if err != nil { return }
|
||||||
|
|
||||||
@ -266,7 +249,8 @@ func (config *Config) Save (name string) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// SaveTo writes the configuration data to the specified io.Writer.
|
// SaveTo writes the configuration data to the specified io.Writer. Keys are
|
||||||
|
// alphabetically sorted.
|
||||||
func (config *Config) SaveTo (writer io.Writer) (err error) {
|
func (config *Config) SaveTo (writer io.Writer) (err error) {
|
||||||
keys := make([]string, len(config.Parameters))
|
keys := make([]string, len(config.Parameters))
|
||||||
index := 0
|
index := 0
|
||||||
@ -334,19 +318,6 @@ func parseColor (value string) (valueColor color.Color, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func getConfigHome () (home string, err error) {
|
|
||||||
var homeDirectory string
|
|
||||||
homeDirectory, err = os.UserHomeDir()
|
|
||||||
if err != nil { return }
|
|
||||||
|
|
||||||
home = os.Getenv("XDG_CONFIG_HOME")
|
|
||||||
if home == "" {
|
|
||||||
home = filepath.Join(homeDirectory, "/.config/")
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func nameIsIllegal (name string) (legal bool) {
|
func nameIsIllegal (name string) (legal bool) {
|
||||||
legal = strings.ContainsAny(name, "/\\|:.%")
|
legal = strings.ContainsAny(name, "/\\|:.%")
|
||||||
return
|
return
|
||||||
|
54
config/xdg.go
Normal file
54
config/xdg.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
import "os"
|
||||||
|
import "strings"
|
||||||
|
import "path/filepath"
|
||||||
|
|
||||||
|
var homeDirectory string
|
||||||
|
var configHome string
|
||||||
|
var configDirs []string
|
||||||
|
var dataHome string
|
||||||
|
var cacheHome string
|
||||||
|
|
||||||
|
func init () {
|
||||||
|
var err error
|
||||||
|
homeDirectory, err = os.UserHomeDir()
|
||||||
|
if err != nil {
|
||||||
|
panic("could not get user home directory: " + err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
configHome = os.Getenv("XDG_CONFIG_HOME")
|
||||||
|
if configHome == "" {
|
||||||
|
configHome = filepath.Join(homeDirectory, "/.config/")
|
||||||
|
}
|
||||||
|
|
||||||
|
configDirsString := os.Getenv("XDG_CONFIG_DIRS")
|
||||||
|
if configDirsString == "" {
|
||||||
|
configDirsString = "/etc/xdg/"
|
||||||
|
}
|
||||||
|
|
||||||
|
configDirs = append(strings.Split(configDirsString, ":"), configHome)
|
||||||
|
|
||||||
|
configHome = os.Getenv("XDG_DATA_HOME")
|
||||||
|
if configHome == "" {
|
||||||
|
configHome = filepath.Join(homeDirectory, "/.local/share/")
|
||||||
|
}
|
||||||
|
|
||||||
|
cacheHome = os.Getenv("XDG_CACHE_HOME")
|
||||||
|
if cacheHome == "" {
|
||||||
|
configHome = filepath.Join(homeDirectory, "/.cache/")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DataHome returns the path to the directory where user data should be stored.
|
||||||
|
func DataHome (name string) (home string) {
|
||||||
|
home = filepath.Join(dataHome, name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// CacheHome returns the path to the directory where cache files should be
|
||||||
|
// stored.
|
||||||
|
func CacheHome (name string) (home string) {
|
||||||
|
home = filepath.Join(cacheHome, name)
|
||||||
|
return
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user