summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-28 08:40:51 -0500
committerJeff Carr <[email protected]>2025-10-28 08:40:51 -0500
commitc5a92b421f202a5b8c807d618aa6edf1cb7db325 (patch)
tree43606ecee91d7f138c14d1f4e220e4f16385f803
parent356cb6b9f9a6f61ca4f26fa20d068a6b905e8122 (diff)
trying to improve user handling
-rw-r--r--SetMode.go4
-rw-r--r--mode.go16
-rw-r--r--tableDefault.go4
-rw-r--r--tableGolang.go58
4 files changed, 74 insertions, 8 deletions
diff --git a/SetMode.go b/SetMode.go
index 0527a1a..3ea7d0c 100644
--- a/SetMode.go
+++ b/SetMode.go
@@ -4,6 +4,7 @@ package forgepb
import (
"go.wit.com/lib/env"
+ "go.wit.com/log"
)
func (f *Forge) SetMode(newmode ForgeMode) error {
@@ -16,6 +17,9 @@ func (f *Forge) SetMode(newmode ForgeMode) error {
if err != nil {
panic("env.Set() doesn't work")
}
+ if env.Verbose() {
+ log.Info("saving new mode", newmode)
+ }
err = env.Save()
if err != nil {
panic("env.Save() doesn't work")
diff --git a/mode.go b/mode.go
index 353c915..21976fb 100644
--- a/mode.go
+++ b/mode.go
@@ -23,6 +23,16 @@ func (f *Forge) SetCleaningMode() {
f.SetMode(ForgeMode_CLEAN)
}
+func (f *Forge) SetUserMode() {
+ f.SetMode(ForgeMode_USER)
+}
+
+func (f *Forge) SetModeNewUser() {
+ if err := f.SetMode(ForgeMode_NEWUSER); err != nil {
+ panic("SetMode failed")
+ }
+}
+
func (f *Forge) IsModeUnknown() bool {
if f.mode == ForgeMode_UNKNOWN {
return true
@@ -44,12 +54,6 @@ func (f *Forge) IsModeDevel() bool {
return false
}
-func (f *Forge) SetModeNewUser() {
- if err := f.SetMode(ForgeMode_NEWUSER); err != nil {
- panic("SetMode failed")
- }
-}
-
func (f *Forge) IsModeMaster() bool {
if f.mode == ForgeMode_MASTER {
return true
diff --git a/tableDefault.go b/tableDefault.go
index d2562c6..99733c9 100644
--- a/tableDefault.go
+++ b/tableDefault.go
@@ -102,11 +102,11 @@ func (f *Forge) makeDefaultBaseTB(pb *gitpb.Repos) *gitpb.ReposTable {
col = t.AddNamespace()
col.Width = 33
- col.Header.Name = fmt.Sprintf("Cache(%s) mode(%s)", f.cache.Name, f.mode.String())
+ col.Header.Name = fmt.Sprintf("Repos (%s) (%s)", f.cache.Name, f.mode.String())
col = t.AddCurrentBranchName()
col.Width = 7
- col.Header.Name = "current"
+ col.Header.Name = "branch"
col = t.AddStringFunc("age", func(r *gitpb.Repo) string {
if r.IsDirty() {
diff --git a/tableGolang.go b/tableGolang.go
new file mode 100644
index 0000000..364aa77
--- /dev/null
+++ b/tableGolang.go
@@ -0,0 +1,58 @@
+// Copyright 2025 WIT.COM Inc Licensed GPL 3.0
+
+package forgepb
+
+import (
+ "go.wit.com/lib/protobuf/gitpb"
+ "go.wit.com/log"
+)
+
+func (f *Forge) PrintGolangTB(pb *gitpb.Repos) string {
+ pb.SortByUserVersion()
+ tablePB := f.makeDefaultTB(pb)
+ tablePB.PrintTable()
+ var dirty int
+ var writable int
+ var bins int
+ var protos int
+ for repo := range pb.IterAll() {
+ if repo.IsDirty() {
+ dirty += 1
+ }
+ if repo.IsBinary() {
+ bins += 1
+ }
+ if repo.IsProtobuf() {
+ protos += 1
+ }
+ if f.Config.IsWritable(repo.Namespace) {
+ writable += 1
+ }
+ }
+ return log.Sprintf("f.GolangRepos: total=(%d) dirty=(%d) writable=(%d) binaries=(%d) protobufs(%d)", pb.Len(), dirty, writable, bins, protos)
+}
+
+func (f *Forge) makeGolangTB(pb *gitpb.Repos) *gitpb.ReposTable {
+ t := f.makeDefaultBaseTB(pb)
+ var col *gitpb.RepoFunc
+
+ col = t.AddStringFunc("type", func(r *gitpb.Repo) string {
+ return f.getRepoType(r)
+ })
+ col.Width = 6
+
+ col = t.AddStringFunc("r/w", func(r *gitpb.Repo) string {
+ if f.IsWritable(r) {
+ return "rw"
+ }
+ return ""
+ })
+ col.Width = 3
+
+ col = t.AddState()
+ col.Width = 12
+
+ col = t.AddURL()
+ col.Width = -1
+ return t
+}