core/user/userconfig.go

49 lines
816 B
Go

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)
}