summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-13 01:46:53 -0500
committerJeff Carr <[email protected]>2025-09-13 01:46:53 -0500
commit20fe78266c87a57e40402769c00658da5aca569f (patch)
tree57ab0bc133105e9618c724c75a1541a4ae8f53ad
parentda0fc653aec4967fb30bbe6c5d635c018c8a9c39 (diff)
better "ForgeMode" handling
-rw-r--r--config.go34
-rw-r--r--doCheckout.go3
-rw-r--r--doClean.go2
-rw-r--r--doMerge.go4
-rw-r--r--main.go11
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("")
}