diff --git a/pkg/settings/config.go b/pkg/settings/config.go index 0d63f811..180fad72 100644 --- a/pkg/settings/config.go +++ b/pkg/settings/config.go @@ -82,6 +82,14 @@ func (c *Configuration) Save(configPath string) error { // https://github.com/Jguer/yay/issues/1325 marshalledinfo = append(marshalledinfo, '\n') + // https://github.com/Jguer/yay/issues/1399 + // fix: unsaved config when yay's config path does not exist + _, err = os.Stat(filepath.Dir(configPath)) + if os.IsNotExist(err) && err != nil { + if mkErr := os.MkdirAll(filepath.Dir(configPath), 0761); mkErr != nil { + return mkErr + } + } in, err := os.OpenFile(configPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o644) if err != nil { return err