Fill default config before trying to unmarshal config file

This keeps the default config values available if the config file only
has a few options.

Also, if the config is not found, save the default config in its place.
And pretty print it when saving to make it easier to edit for users.
This commit is contained in:
Kaushal M 2017-07-06 13:00:48 +05:30
parent 3ab83cd14f
commit 2bf1cf4515
No known key found for this signature in database
GPG key ID: 35B58339F67C58C1

View file

@ -51,12 +51,15 @@ var AlpmConf alpm.PacmanConfig
var AlpmHandle *alpm.Handle
func init() {
defaultSettings(&YayConf)
var err error
configfile := os.Getenv("HOME") + "/.config/yay/config.json"
if _, err = os.Stat(configfile); os.IsNotExist(err) {
_ = os.MkdirAll(os.Getenv("HOME")+"/.config/yay", 0755)
defaultSettings(&YayConf)
// Save the default config if nothing is found
SaveConfig()
} else {
file, err := os.Open(configfile)
if err != nil {
@ -100,7 +103,7 @@ func readAlpmConfig(pacmanconf string) (conf alpm.PacmanConfig, err error) {
func SaveConfig() error {
YayConf.NoConfirm = false
configfile := os.Getenv("HOME") + "/.config/yay/config.json"
marshalledinfo, _ := json.Marshal(YayConf)
marshalledinfo, _ := json.MarshalIndent(YayConf, "", "\t")
in, err := os.OpenFile(configfile, os.O_RDWR|os.O_CREATE, 0755)
if err != nil {
return err