summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--argv.go3
-rw-r--r--doClean.go7
-rw-r--r--doMode.go34
-rw-r--r--doNewUser.go3
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 {