From cc7ead38db8403089e428caf1ef634b42455389e Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 17 Oct 2025 04:18:51 -0500 Subject: various twiddiling --- argv.go | 3 ++- doClean.go | 7 +++++-- doMode.go | 34 +++++++++++++++++++++++++--------- doNewUser.go | 3 +-- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/argv.go b/argv.go index 7eb9541..893ebde 100644 --- a/argv.go +++ b/argv.go @@ -96,9 +96,10 @@ type RepoCmd struct { type ModeCmd struct { Master *EmptyCmd `arg:"subcommand:master" help:"keep all repos on the master branch"` - Devel *EmptyCmd `arg:"subcommand:devel" help:"use user branches"` + Devel *EmptyCmd `arg:"subcommand:devel" help:"use devel branches"` User *EmptyCmd `arg:"subcommand:user" help:"use user branches"` Normal *EmptyCmd `arg:"subcommand:normal" help:"use the 'normal' forge development mode"` + Clean *EmptyCmd `arg:"subcommand:clean" help:"clean mode. removes everything to origin/HEAD"` } type CommitCmd struct { diff --git a/doClean.go b/doClean.go index 33b2298..13154ce 100644 --- a/doClean.go +++ b/doClean.go @@ -40,15 +40,18 @@ func doResetRepo(repo *gitpb.Repo) error { // reverts all repos back to the original master branches // automatically deletes local devel and user branches func doClean() (string, error) { + var s string + var err error + if argv.Clean.List != nil { - s, err := doCleanList() + s, err = doCleanList() return s, err } if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL { s := fmt.Sprintf("Reset all (%d) git repos to the original state (non-destructive)?", me.forge.Repos.Len()) if !fhelp.QuestionUser(s) { - log.Info("Run: 'forge checkout master'") + s, err = doModeMaster() } } me.forge.SetMode(forgepb.ForgeMode_CLEAN) diff --git a/doMode.go b/doMode.go index a1c6279..aaf881b 100644 --- a/doMode.go +++ b/doMode.go @@ -23,17 +23,33 @@ func doMode() (string, error) { return "user mode on", nil } if argv.Mode.Devel != nil { - me.forge.SetMode(forgepb.ForgeMode_DEVEL) - err = me.forge.DoAllCheckoutDevelNew(argv.Force) - s = "devel mode on" + s, err = doModeDevel() } if argv.Mode.Master != nil { - me.forge.SetMode(forgepb.ForgeMode_MASTER) - - err = me.forge.DoAllCheckoutMaster() - me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes - me.forge.SaveRepos() - s = "master mode on" + s, err = doModeMaster() } return s, err } + +func doModeMaster() (string, error) { + var s string + var err error + + me.forge.SetMode(forgepb.ForgeMode_MASTER) + + err = me.forge.DoAllCheckoutMaster() + me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes + me.forge.SaveRepos() + s = "master mode on" + return s, err +} + +func doModeDevel() (string, error) { + var s string + var err error + + me.forge.SetMode(forgepb.ForgeMode_DEVEL) + err = me.forge.DoAllCheckoutDevelNew(argv.Force) + s = "devel mode on" + return s, err +} diff --git a/doNewUser.go b/doNewUser.go index 6cb359b..b4a5eda 100644 --- a/doNewUser.go +++ b/doNewUser.go @@ -66,8 +66,7 @@ func doNewUser() (string, error) { } else { log.Info("question false") } - me.forge.Config.Mode = forgepb.ForgeMode_MASTER - err := me.forge.ConfigSave() + me.forge.SetMode(forgepb.ForgeMode_CLEAN) if err != nil { log.Info("ConfigSave() failed", err) } else { -- cgit v1.2.3