diff options
Diffstat (limited to 'Save.go')
| -rw-r--r-- | Save.go | 58 |
1 files changed, 58 insertions, 0 deletions
@@ -0,0 +1,58 @@ +// Copyright 2025 WIT.COM Inc Licensed GPL 3.0 + +package forgepb + +import ( + "go.wit.com/lib/config" + "go.wit.com/lib/protobuf/argvpb" + "go.wit.com/log" +) + +func (f *Forge) Save() error { + var err error + if f.Config == nil { + 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 + } + // 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) + return err + } + + if argvpb.Verbose() { + err = f.Repos.SaveVerbose() + } else { + err = f.Repos.Save() + } + + if err != nil { + log.Info("forge.Repos.Save() error", err) + return err + } + return nil +} |
