diff --git a/config.go b/config.go index 4cdb35b..be0e7ec 100644 --- a/config.go +++ b/config.go @@ -36,8 +36,8 @@ func (config *Config) load() error { return err } - configPath := homeDir + "/.config/gopaper/config.jsonc" - configRaw, err := os.ReadFile(configPath) + configDir := homeDir + "/.config/gopaper/" + configRaw, err := os.ReadFile(configDir) if err != nil { if !os.IsExist(err) { defaultConfig := makeDefaultConfig() @@ -46,7 +46,19 @@ func (config *Config) load() error { log.Println("could not encode default config!") return err } - file, err := os.Create(configPath) + //TODO: make parent directories if they don't exist + err = os.Mkdir(homeDir+".config", 755) + if err != nil && !os.IsExist(err) { + log.Println("could not create .config directory") + return err + } + err = os.Mkdir(configDir, 755) + if err != nil && !os.IsExist(err) { + log.Println("could not create .config/gopaper directory") + return err + } + + file, err := os.Create(configDir + "config.jsonc") defer file.Close() if err != nil { log.Println("could not create config file!")