summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doMode.go44
-rw-r--r--main.go33
2 files changed, 48 insertions, 29 deletions
diff --git a/doMode.go b/doMode.go
new file mode 100644
index 0000000..2094754
--- /dev/null
+++ b/doMode.go
@@ -0,0 +1,44 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+import (
+ "time"
+
+ "go.wit.com/lib/gui/shell"
+ "go.wit.com/lib/protobuf/forgepb"
+ "go.wit.com/log"
+)
+
+// FORGE USES THESE TO RECOVER FROM WHEN TOOLKITS FAIL TO LOAD
+// so don't delete them
+func doMode() (string, error) {
+ if argv.Mode.Normal != nil {
+ if doNormal() {
+ setForgeMode(forgepb.ForgeMode_NORMAL)
+ log.Infof("all your %d repos are in a normal stete for development\n", me.forge.Repos.Len())
+ okExit("")
+ }
+ start := time.Now()
+ err := me.forge.DoAllCheckoutUser(argv.Force)
+ dur := time.Since(start)
+ log.Printf("Checked out %d user braches in %s\n", me.forge.Repos.Len(), shell.FormatDuration(dur))
+ if err != nil {
+ me.sh.BadExit("not everything on user braches", err)
+ }
+ setForgeMode(forgepb.ForgeMode_NORMAL)
+ log.Info("normal mode on")
+ return "normal mode on", nil
+ }
+
+ if argv.Mode.User != nil {
+ setForgeMode(forgepb.ForgeMode_USER)
+ return "user mode on", nil
+ }
+ if argv.Mode.Master != nil {
+ setForgeMode(forgepb.ForgeMode_MASTER)
+ return "master mode on", nil
+ }
+ return "nothing done", nil
+}
diff --git a/main.go b/main.go
index 2df1cf4..a4cadf9 100644
--- a/main.go
+++ b/main.go
@@ -8,10 +8,8 @@ package main
import (
"embed"
"strings"
- "time"
"go.wit.com/lib/gui/prep"
- "go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
@@ -100,34 +98,11 @@ func main() {
}
if argv.Mode != nil {
- if argv.Mode.Normal != nil {
- if doNormal() {
- setForgeMode(forgepb.ForgeMode_NORMAL)
- log.Infof("all your %d repos are in a normal stete for development\n", me.forge.Repos.Len())
- okExit("")
- }
- start := time.Now()
- err := me.forge.DoAllCheckoutUser(argv.Force)
- dur := time.Since(start)
- log.Printf("Checked out %d user braches in %s\n", me.forge.Repos.Len(), shell.FormatDuration(dur))
- if err != nil {
- me.sh.BadExit("not everything on user braches", err)
- }
- setForgeMode(forgepb.ForgeMode_NORMAL)
- okExit("")
- log.Info("normal mode on")
- okExit("")
- }
-
- if argv.Mode.User != nil {
- setForgeMode(forgepb.ForgeMode_USER)
- okExit("")
- }
- if argv.Mode.Master != nil {
- setForgeMode(forgepb.ForgeMode_MASTER)
- okExit("")
+ if s, err := doMode(); err != nil {
+ me.sh.BadExit(s, err)
+ } else {
+ me.sh.GoodExit(s)
}
- okExit("")
}
// if you are in "normal" mode, always run normal every time to catch accidental errors