Abstract typical config file loading with path and cli overrides

This commit is contained in:
Kovid Goyal
2023-03-16 11:03:58 +05:30
parent 5329546f21
commit d208670172
4 changed files with 91 additions and 15 deletions

View File

@@ -73,7 +73,7 @@ var KittyExe = (&Once[string]{Run: func() string {
return os.Getenv("KITTY_PATH_TO_KITTY_EXE")
}}).Get
var ConfigDir = (&Once[string]{Run: func() (config_dir string) {
func ConfigDirForName(name string) (config_dir string) {
if kcd := os.Getenv("KITTY_CONFIG_DIRECTORY"); kcd != "" {
return Abspath(Expanduser(kcd))
}
@@ -101,7 +101,7 @@ var ConfigDir = (&Once[string]{Run: func() (config_dir string) {
for _, loc := range locations {
if loc != "" {
q := filepath.Join(loc, "kitty")
if _, err := os.Stat(filepath.Join(q, "kitty.conf")); err == nil {
if _, err := os.Stat(filepath.Join(q, name)); err == nil {
config_dir = q
return
}
@@ -113,6 +113,10 @@ var ConfigDir = (&Once[string]{Run: func() (config_dir string) {
}
config_dir = filepath.Join(Expanduser(config_dir), "kitty")
return
}
var ConfigDir = (&Once[string]{Run: func() (config_dir string) {
return ConfigDirForName("kitty.conf")
}}).Get
var CacheDir = (&Once[string]{Run: func() (cache_dir string) {