From 20fe78266c87a57e40402769c00658da5aca569f Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sat, 13 Sep 2025 01:46:53 -0500 Subject: [PATCH] better "ForgeMode" handling --- config.go | 34 +++++----------------------------- doCheckout.go | 3 +++ doClean.go | 2 +- doMerge.go | 4 ++-- main.go | 11 ++++------- 5 files changed, 15 insertions(+), 39 deletions(-) diff --git a/config.go b/config.go index d294286..486719f 100644 --- a/config.go +++ b/config.go @@ -6,6 +6,7 @@ package main import ( "fmt" + "go.wit.com/lib/config" "go.wit.com/lib/protobuf/forgepb" ) @@ -13,36 +14,11 @@ func forgeConfigSave() error { return me.forge.Config.ConfigSave() } -/* -func configInit() (*forgepb.ForgeConfigs, error) { - me.urlbase = argv.URL - if me.urlbase == "" { - me.urlbase = "https://go.wit.com/" - } - if os.Getenv("FORGE_URL") != "" { - me.urlbase = os.Getenv("FORGE_URL") - log.Info("got forge url", me.urlbase) - } - me.urlbase = strings.Trim(me.urlbase, "/") // track down why trailing '/' makes http POST not work - - configs := new(forgepb.ForgeConfigs) - err := config.ConfigLoad(configs, ARGNAME, "forge") - if errors.Is(err, os.ErrNotExist) { - // if forgepb.FirstTimeUser() { - log.Info("You are running forge for the first time here") - // } - configs.ReposDir = "/home/forge" - configs.ReposPB = "/home/forge/repos.pb" - configs.PatchDir = "/var/lib/forged" - if err := forgeConfigSave(); err != nil { - return nil, err - } - log.Info("WARNING: made a new default config file here", configs.Filename) - okExit("") - } - return configs, err +func setForgeMode(fmode forgepb.ForgeMode) { + me.forge.Config.Mode = fmode + config.SetChanged("forge", true) + me.forge.Config.ConfigSave() } -*/ func sampleConfig(all *forgepb.ForgeConfigs) { new1 := new(forgepb.ForgeConfig) diff --git a/doCheckout.go b/doCheckout.go index b5944e6..bbe0ac0 100644 --- a/doCheckout.go +++ b/doCheckout.go @@ -8,6 +8,7 @@ import ( "time" "go.wit.com/lib/gui/shell" + "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) @@ -33,6 +34,8 @@ func doCheckout() error { } if argv.Checkout.Master != nil { + setForgeMode(forgepb.ForgeMode_MASTER) // disable "normal" mode if set + if err := me.forge.DoAllCheckoutMaster(); err != nil { badExit(err) } diff --git a/doClean.go b/doClean.go index 7dc0049..6dae318 100644 --- a/doClean.go +++ b/doClean.go @@ -32,7 +32,7 @@ func checkRemoteBranches(repo *gitpb.Repo) error { // reverts all repos back to the original master branches // automatically deletes local devel and user branches func doClean() error { - me.forge.Config.Mode = forgepb.ForgeMode_CLEAN + setForgeMode(forgepb.ForgeMode_CLEAN) if argv.Clean.Verify != nil { stats := me.forge.RillRepos(checkRemoteBranches) diff --git a/doMerge.go b/doMerge.go index 8a6f843..acbfd1b 100644 --- a/doMerge.go +++ b/doMerge.go @@ -59,8 +59,8 @@ func doMergeDevel() (*gitpb.Repos, error) { func doMergeMaster() (*gitpb.Repos, error) { var err error - me.forge.Config.Mode = forgepb.ForgeMode_MASTER // disable "normal" mode if set - configSave = true + setForgeMode(forgepb.ForgeMode_MASTER) + done := gitpb.NewRepos() found := findMergeToMaster() for repo := range found.IterAll() { diff --git a/main.go b/main.go index d5fdf52..6c02138 100644 --- a/main.go +++ b/main.go @@ -82,7 +82,7 @@ func main() { } if argv.Checkout != nil { - me.forge.Config.Mode = forgepb.ForgeMode_MASTER + setForgeMode(forgepb.ForgeMode_MASTER) if err := doCheckout(); err != nil { badExit(err) } @@ -132,8 +132,7 @@ func main() { log.Info("you are already in the normal state") okExit("") } - me.forge.Config.Mode = forgepb.ForgeMode_NORMAL - me.forge.Config.ConfigSave() + setForgeMode(forgepb.ForgeMode_NORMAL) log.Info("normal mode on") okExit("") } @@ -143,8 +142,7 @@ func main() { log.Info("you were aleady not in the normal state") okExit("") } - me.forge.Config.Mode = forgepb.ForgeMode_MASTER - me.forge.Config.ConfigSave() + setForgeMode(forgepb.ForgeMode_MASTER) log.Info("normal mode off") okExit("") } @@ -153,8 +151,7 @@ func main() { log.Infof("all %d repos are on your user branch. It is safe to write code now.\n", me.forge.Repos.Len()) if me.forge.Config.Mode != forgepb.ForgeMode_NORMAL { log.Infof("Forge has set the mode to 'Normal'\n") - me.forge.Config.Mode = forgepb.ForgeMode_NORMAL - me.forge.ConfigSave() + setForgeMode(forgepb.ForgeMode_NORMAL) } okExit("") }