diff options
| -rw-r--r-- | Save.go | 77 | ||||
| -rw-r--r-- | config.go | 66 | ||||
| -rw-r--r-- | doDirty.go | 1 | ||||
| -rw-r--r-- | forgeConfig.SaveVerbose.go | 10 | ||||
| -rw-r--r-- | init.go | 4 |
5 files changed, 79 insertions, 79 deletions
@@ -39,9 +39,9 @@ func (f *Forge) Save() error { } log.Info("Okay, this is", argvpb.GetAPPNAME()) - err = f.Config.ConfigSave() + err = f.Config.configSave() if err != nil { - log.Info("forge.Config.ConfigSave() error", err) + log.Info("forge.Config.configSave() error", err) return err } @@ -57,3 +57,76 @@ func (f *Forge) Save() error { } return nil } + +func (f *Forge) saveRepos() error { + if ENV.Verbose() { + return f.Repos.SaveVerbose() + } + return f.Repos.Save() +} + +// functions to import and export the protobuf +// data to and from config files + +// write to ~/.config/forge/ +func (cfg *ForgeConfigs) configSave() error { + var header string + header += "\n" + header += "# the forge config file\n" + header += "# You can customize things like:\n" + header += "#\n" + header += "# * which repos you have write access to\n" + header += "# * custom branch names for 'master', 'devel' and 'user'\n" + header += "# * 'favorites' so you can remember which things you like\n" + header += "# * sometimes protobuf TEXT can fail so as a backup this also creates a .json file\n" + header += "#\n" + header += "\n" + return config.SaveWithHeader(cfg, header) +} + +func (pb *ForgeConfigs) saveVerbose() error { + err := config.SavePB(pb) + if err == nil { + log.Printf("Saved %s with len(%d) ForgeConfigs.\n", pb.Filename, pb.Len()) + } else { + log.Printf("Save err %s with len(%d) ForgeConfigs. err(%v)\n", pb.Filename, pb.Len(), err) + } + return err +} + +// returns err1 || err2 +func (f *Forge) configSave() error { + if f.Config == nil { + return log.Errorf("forge.Config == nil") + } + + if !config.HasChanged("forge") { + return nil + } + + // only let forge edit & save the config files + // inforce this in 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()) + + if err := f.Config.configSave(); err != nil { + log.Info("forge.Config.ConfigSave() error", err) + return err + } + return nil +} @@ -8,54 +8,9 @@ import ( "go.wit.com/lib/ENV" "go.wit.com/lib/config" - "go.wit.com/lib/protobuf/argvpb" "go.wit.com/log" ) -// returns err1 || err2 -func (f *Forge) ConfigSave() error { - if f.Config == nil { - return log.Errorf("forge.Config == nil") - } - - if !config.HasChanged("forge") { - return nil - } - - // only let forge edit & save the config files - // inforce this in 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()) - - if err := f.Config.ConfigSave(); err != nil { - log.Info("forge.Config.ConfigSave() error", err) - return err - } - return nil -} - -func (f *Forge) SaveRepos() error { - if ENV.Verbose() { - return f.Repos.SaveVerbose() - } - return f.Repos.Save() -} - func (f *Forge) SetMode(newmode ForgeMode) error { if f.mode == newmode { // nothing changed @@ -73,25 +28,6 @@ func (f *Forge) SetMode(newmode ForgeMode) error { return err } -// functions to import and export the protobuf -// data to and from config files - -// write to ~/.config/forge/ -func (cfg *ForgeConfigs) ConfigSave() error { - var header string - header += "\n" - header += "# the forge config file\n" - header += "# You can customize things like:\n" - header += "#\n" - header += "# * which repos you have write access to\n" - header += "# * custom branch names for 'master', 'devel' and 'user'\n" - header += "# * 'favorites' so you can remember which things you like\n" - header += "# * sometimes protobuf TEXT can fail so as a backup this also creates a .json file\n" - header += "#\n" - header += "\n" - return config.ConfigSaveWithHeader(cfg, header) -} - func loadStdConfig() (*ForgeConfigs, error) { cfg := NewForgeConfigs() err := cfg.loadConfig() @@ -121,7 +57,7 @@ func makeDefaultConfig() (*ForgeConfigs, error) { cfg.addSampleConfigs() ENV.PrintTable() var err error - if err = cfg.SaveVerbose(); err != nil { + if err = cfg.saveVerbose(); err != nil { log.Info("config save error:", err) } return cfg, err @@ -28,6 +28,7 @@ func (f *Forge) CheckDirtyQuiet() { } } if changed { + f.Save() log.Printf("dirty check (%d dirty repos) (%d total repos) (%d changed) (%s)\n", end, f.Repos.Len(), diff, shell.FormatDuration(time.Since(now))) } } diff --git a/forgeConfig.SaveVerbose.go b/forgeConfig.SaveVerbose.go index 57abf69..089ffe8 100644 --- a/forgeConfig.SaveVerbose.go +++ b/forgeConfig.SaveVerbose.go @@ -15,16 +15,6 @@ import ( "go.wit.com/log" ) -func (pb *ForgeConfigs) SaveVerbose() error { - err := config.SavePB(pb) - if err == nil { - log.Printf("Saved %s with len(%d) ForgeConfigs.\n", pb.Filename, pb.Len()) - } else { - log.Printf("Save err %s with len(%d) ForgeConfigs. err(%v)\n", pb.Filename, pb.Len(), err) - } - return err -} - func (pb *ForgeConfigs) loadConfig() error { filename, err := config.LoadByAppName(pb, "forge", "forge") if err != nil { @@ -126,12 +126,12 @@ func (f *Forge) SetConfigSave(b bool) { // saves the config if there have been changes func (f *Forge) Close() error { - if err := f.ConfigSave(); err != nil { + if err := f.Save(); err != nil { return err } if f.Repos != nil { if config.HasChanged("repos") { - if err := f.Repos.Save(); err != nil { + if err := f.Repos.SaveVerbose(); err != nil { log.Info("forge.Repos.ConfigSave() error", err) return err } |
