diff --git a/cmd/agedit/cli.go b/cmd/agedit/cli.go index cef818a..3c0518e 100644 --- a/cmd/agedit/cli.go +++ b/cmd/agedit/cli.go @@ -14,6 +14,7 @@ import ( "git.burning.moe/celediel/agedit/pkg/encrypt" "git.burning.moe/celediel/agedit/pkg/env" + "github.com/adrg/xdg" "github.com/charmbracelet/log" "github.com/ilyakaznacheev/cleanenv" "github.com/urfave/cli/v2" @@ -39,6 +40,7 @@ COPYRIGHT: {{.Copyright}} {{end}} ` + sep string = string(os.PathSeparator) ) var ( @@ -170,7 +172,7 @@ func before(ctx *cli.Context) error { // set some defaults cfg = config.Defaults cfg.Editor = env.GetEditor() - cfg_dir := env.GetConfigDir(name) + cfg_dir := xdg.ConfigHome + sep + name + sep cfg.IdentityFile = cfg_dir + "identity.key" configFile = cfg_dir + name + ".yaml" logger = log.NewWithOptions(os.Stderr, log.Options{ diff --git a/pkg/env/env.go b/pkg/env/env.go index 36e36be..108ac18 100644 --- a/pkg/env/env.go +++ b/pkg/env/env.go @@ -5,8 +5,6 @@ import ( "regexp" "runtime" "strings" - - "github.com/adrg/xdg" ) // GetEditor gets the configured editor by checking environmental @@ -24,24 +22,6 @@ func GetEditor() string { return editor } -// GetConfigDir gets a config directory based from environmental variables + the app name -// -// On Windows, %APPDATA%\agedit is used -// -// On UNIX-like systems, $XDG_CONFIG_HOME/agedit is tried, if it isn't defined, $HOME/.config/agedit is used -func GetConfigDir(appname string) string { - return make_path(xdg.ConfigHome, appname) -} - -// GetConfigDir gets a config directory based from environmental variables + the app name -// -// On Windows, %LOCALAPPDATA%\agedit is used -// -// On UNIX-like systems, $XDG_DATA_HOME/agedit is tried, if it isn't defined, $HOME/.local/share/agedit is used -func GetDataDir(appname string) string { - return make_path(xdg.DataHome, appname) -} - // GetTempDirectory returns the systems temporary directory // // returns %TEMP% on Windows, /tmp on UNIX-like systems @@ -65,24 +45,3 @@ func GetTempDirectory() string { } return tmp } - -func make_path(paths ...string) string { - sep := string(os.PathSeparator) - output := strings.Builder{} - - // add / to the start if it's not already there and we're not on Windows - if match, err := regexp.Match("^\\w", []byte(paths[0])); err == nil && match && runtime.GOOS != "windows" { - output.WriteString(sep) - } - - for _, path := range paths { - // don't add / to the end if it's there - if strings.HasSuffix(path, sep) { - output.WriteString(path) - } else { - output.WriteString(path + sep) - } - } - - return output.String() -}