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
|
||||
}
|
||||
|
||||
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 {
|
||||
path := filepath.Join(directory, name, name + ".conf")
|
||||
|
||||
@ -247,10 +234,6 @@ func (config *Config) Save (name string) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
var configHome string
|
||||
configHome, err = getConfigHome()
|
||||
if err != nil { return }
|
||||
|
||||
err = os.MkdirAll(configHome, 0755)
|
||||
if err != nil { return }
|
||||
|
||||
@ -266,7 +249,8 @@ func (config *Config) Save (name string) (err error) {
|
||||
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) {
|
||||
keys := make([]string, len(config.Parameters))
|
||||
index := 0
|
||||
@ -334,19 +318,6 @@ func parseColor (value string) (valueColor color.Color, err error) {
|
||||
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) {
|
||||
legal = strings.ContainsAny(name, "/\\|:.%")
|
||||
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