summaryrefslogtreecommitdiff
path: root/Save.go
diff options
context:
space:
mode:
Diffstat (limited to 'Save.go')
-rw-r--r--Save.go79
1 files changed, 51 insertions, 28 deletions
diff --git a/Save.go b/Save.go
index fc03f91..4bbcb7b 100644
--- a/Save.go
+++ b/Save.go
@@ -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
+}