package user import ( "encoding/json" "os" "path" "github.com/mitchellh/go-homedir" ) func ReadUserConfig(appName, configName string, config interface{}) error { dir, err := homedir.Dir() if err != nil { return err } filePath := path.Join(dir, ".config", appName, configName) data, err := os.ReadFile(filePath) if err != nil { return err } return json.Unmarshal(data, config) } func WriteUserConfig(appName, configName string, config interface{}) error { dir, err := homedir.Dir() if err != nil { return err } data, err := json.Marshal(config) if err != nil { return err } filePath := path.Join(dir, ".config", appName) err = os.MkdirAll(filePath, 0700) if err != nil { return err } filePath = path.Join(filePath, configName) return os.WriteFile(filePath, data, 0700) }