remove roundabout way of getting config dir

This commit is contained in:
Lilian Jónsdóttir 2024-05-29 13:12:11 -07:00
parent 5c660f013b
commit 044c944262
2 changed files with 3 additions and 42 deletions

View file

@ -14,6 +14,7 @@ import (
"git.burning.moe/celediel/agedit/pkg/encrypt" "git.burning.moe/celediel/agedit/pkg/encrypt"
"git.burning.moe/celediel/agedit/pkg/env" "git.burning.moe/celediel/agedit/pkg/env"
"github.com/adrg/xdg"
"github.com/charmbracelet/log" "github.com/charmbracelet/log"
"github.com/ilyakaznacheev/cleanenv" "github.com/ilyakaznacheev/cleanenv"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
@ -39,6 +40,7 @@ COPYRIGHT:
{{.Copyright}} {{.Copyright}}
{{end}} {{end}}
` `
sep string = string(os.PathSeparator)
) )
var ( var (
@ -170,7 +172,7 @@ func before(ctx *cli.Context) error {
// set some defaults // set some defaults
cfg = config.Defaults cfg = config.Defaults
cfg.Editor = env.GetEditor() cfg.Editor = env.GetEditor()
cfg_dir := env.GetConfigDir(name) cfg_dir := xdg.ConfigHome + sep + name + sep
cfg.IdentityFile = cfg_dir + "identity.key" cfg.IdentityFile = cfg_dir + "identity.key"
configFile = cfg_dir + name + ".yaml" configFile = cfg_dir + name + ".yaml"
logger = log.NewWithOptions(os.Stderr, log.Options{ logger = log.NewWithOptions(os.Stderr, log.Options{

41
pkg/env/env.go vendored
View file

@ -5,8 +5,6 @@ import (
"regexp" "regexp"
"runtime" "runtime"
"strings" "strings"
"github.com/adrg/xdg"
) )
// GetEditor gets the configured editor by checking environmental // GetEditor gets the configured editor by checking environmental
@ -24,24 +22,6 @@ func GetEditor() string {
return editor 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 // GetTempDirectory returns the systems temporary directory
// //
// returns %TEMP% on Windows, /tmp on UNIX-like systems // returns %TEMP% on Windows, /tmp on UNIX-like systems
@ -65,24 +45,3 @@ func GetTempDirectory() string {
} }
return tmp 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()
}