diff options
Diffstat (limited to 'Save.go')
| -rw-r--r-- | Save.go | 79 |
1 files changed, 51 insertions, 28 deletions
@@ -3,6 +3,8 @@ package forgepb import ( + "errors" + "go.wit.com/lib/ENV" "go.wit.com/lib/config" "go.wit.com/lib/protobuf/argvpb" @@ -10,52 +12,61 @@ import ( ) func (f *Forge) Save() error { + var allerr error var err error if f.Config == nil { + log.Info("forge.Config == nil. Init failed. die here(?)") return log.Errorf("forge.Config == nil") } - // THIS IS NOT RIGHT ANYMORE ? - if !config.HasChanged("forge") { - return nil - } - // MOVE THIS TO /lib/config ? if !(argvpb.GetAPPNAME() == "forge" || argvpb.GetAPPNAME() == "guireleaser") { log.Info("This is not forge") return log.Errorf("Only forge can save the forge config file") } - // migrate from the old gopath to "namespace" - for fc := range f.Config.IterAll() { - if fc.Namespace != "" { - continue - } - if fc.Namespace != fc.GoPath { - fc.Namespace = fc.GoPath + // THIS IS NOT RIGHT ANYMORE ? + if config.HasChanged("repos") { + log.Info("forgepb.Save() thinks repos changed") + if ENV.Verbose() { + log.Info("forgepb.Save() trying SaveVerbose()") + err = f.Repos.SaveVerbose() + } else { + log.Info("forgepb.Save() trying Save()") + err = f.Repos.SaveVerbose() + // err = f.Repos.Save() } - // todo: deprecate this - fc.GoPath = "" // I want to do this but it might be a bad idea at this point + allerr = errors.Join(allerr, err) } - log.Info("Okay, this is", argvpb.GetAPPNAME()) - err = f.Config.configSave() - if err != nil { - log.Info("forge.Config.configSave() error", err) - return err - } + if config.HasChanged("forge") { + log.Info("forgepb.Save() thinks nothing changed") - if ENV.Verbose() { - err = f.Repos.SaveVerbose() - } else { - err = f.Repos.Save() + // migrate from the old gopath to "namespace" + for fc := range f.Config.IterAll() { + if fc.Namespace != "" { + continue + } + if fc.Namespace != fc.GoPath { + fc.Namespace = fc.GoPath + } + // todo: deprecate this + fc.GoPath = "" // I want to do this but it might be a bad idea at this point + } + log.Info("Okay, this is", argvpb.GetAPPNAME()) + + err = f.Config.configSave() + if err != nil { + log.Info("forge.Config.configSave() error", err) + } + allerr = errors.Join(allerr, err) + return nil } - if err != nil { - log.Info("forge.Repos.Save() error", err) - return err + if allerr != nil { + log.Info("forge.Save() errors:", allerr) } - return nil + return allerr } func (f *Forge) saveRepos() error { @@ -84,6 +95,10 @@ func (cfg *ForgeConfigs) configSave() error { return config.SaveWithHeader(cfg, header) } +func (f *Forge) SetConfigSave(b bool) { + config.SetChanged("forge", b) +} + func (pb *ForgeConfigs) saveVerbose() error { err := config.SavePB(pb) if err == nil { @@ -130,3 +145,11 @@ func (f *Forge) configSave() error { } return nil } + +// name to simplify tracking of code flow +func (f *Forge) flush() error { + if err := f.Save(); err != nil { + return err + } + return nil +} |
