summaryrefslogtreecommitdiff
path: root/Save.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-20 13:21:03 -0500
committerJeff Carr <[email protected]>2025-10-20 13:21:03 -0500
commit69b5038c58e6a8487f22aeaf28eddec5c785c283 (patch)
tree72b9910c32a803d8c7f3bffc0f5d7175516d39b0 /Save.go
parent2ecc340541f88d4c1cbe437efe79a6fcfdbf5499 (diff)
probably better. notsure
Diffstat (limited to 'Save.go')
-rw-r--r--Save.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/Save.go b/Save.go
new file mode 100644
index 0000000..ab86c1b
--- /dev/null
+++ b/Save.go
@@ -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
+}