summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-02 08:13:43 -0600
committerJeff Carr <[email protected]>2025-03-02 08:13:43 -0600
commit10a1741bd9c784b078dd4fcfe3ff4892743805c8 (patch)
tree9209e18d82adfd49594b08b2e414460d3ad45c92
parent9ccc3d04703557d2226e8dae06b189032793ef80 (diff)
mode windows
-rw-r--r--argvAutoshell.go2
-rw-r--r--doGui.go279
2 files changed, 141 insertions, 140 deletions
diff --git a/argvAutoshell.go b/argvAutoshell.go
index 76ae9c0..fd76d45 100644
--- a/argvAutoshell.go
+++ b/argvAutoshell.go
@@ -38,7 +38,7 @@ func (args) doBashAuto() {
case "delete":
deleteMatch()
case "dirty":
- fmt.Println("--verbose")
+ fmt.Println("")
case "examine":
fmt.Println("fix")
case "list":
diff --git a/doGui.go b/doGui.go
index 8ff3d1f..1e3d513 100644
--- a/doGui.go
+++ b/doGui.go
@@ -22,37 +22,48 @@ import (
func debug() {
time.Sleep(2 * time.Second)
for {
- var found *gitpb.Repos
now := time.Now()
- tmp := fmt.Sprintf("All (%d)", me.forge.Repos.Len())
- me.repoAllB.SetLabel(tmp)
+ if me.repoAllB == nil {
+ log.Printf("finished empty forge scan here in (%s)\n", shell.FormatDuration(time.Since(now)))
+ time.Sleep(90 * time.Second)
+ continue
+ }
+ if me.repoAllB != nil {
+ tmp := fmt.Sprintf("All (%d)", me.forge.Repos.Len())
+ me.repoAllB.SetLabel(tmp)
+ }
- found = findMergeToDevel()
- tmp = fmt.Sprintf("needs merge to devel (%d)", found.Len())
- me.repoDevelMergeB.SetLabel(tmp)
+ if me.repoDevelMergeB != nil {
+ found := findMergeToDevel()
+ tmp := fmt.Sprintf("needs merge to devel (%d)", found.Len())
+ me.repoDevelMergeB.SetLabel(tmp)
+ }
- found = gitpb.NewRepos()
- all := me.forge.Repos.SortByFullPath()
- for all.Scan() {
- repo := all.Next()
- if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
- continue
- }
+ if me.repoWritableB != nil {
+ found := gitpb.NewRepos()
+ all := me.forge.Repos.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
+ continue
+ }
- found.AppendByGoPath(repo)
+ found.AppendByGoPath(repo)
+ }
+ tmp := fmt.Sprintf("writable (%d)", found.Len())
+ me.repoWritableB.SetLabel(tmp)
}
- tmp = fmt.Sprintf("writable (%d)", found.Len())
- me.repoWritableB.SetLabel(tmp)
- doCheckDirtyAndConfigSave()
- found = findDirty()
- tmp = fmt.Sprintf("dirty (%d)", found.Len())
- me.repoDirtyB.SetLabel(tmp)
+ if me.repoDirtyB != nil {
+ doCheckDirtyAndConfigSave()
+ found := findDirty()
+ tmp := fmt.Sprintf("dirty (%d)", found.Len())
+ me.repoDirtyB.SetLabel(tmp)
+ }
log.Printf("finished a forge scan here in (%s)\n", shell.FormatDuration(time.Since(now)))
time.Sleep(90 * time.Second)
-
}
}
@@ -210,6 +221,109 @@ func drawWindow(win *gadgets.BasicWindow) {
grid.NewButton("git pull", func() {
log.Info("todo: run git pull on each repo")
})
+
+ me.repoDevelMergeB = grid.NewButton("merge", func() {
+ found := findMergeToDevel()
+ _, box := makeStandardReposWindow("repos to merge from user to devel", found)
+ hbox := box.Box().Horizontal()
+ hbox.NewButton("merge all", func() {
+ win.Disable()
+ defer win.Enable()
+ all := found.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ if repo.CheckDirty() {
+ log.Info("repo is dirty", repo.GetGoPath())
+ continue
+ }
+ log.Info("Starting merge on", repo.GetGoPath())
+ if repo.CheckoutDevel() {
+ log.Info("checkout devel failed", repo.GetGoPath())
+ return
+ }
+ if _, err := repo.MergeToDevel(); err != nil {
+ log.Info("merge from user failed", repo.GetGoPath(), err)
+ // log.Info(strings.Join(r.Stdout, "\n"))
+ // log.Info(strings.Join(r.Stderr, "\n"))
+ return
+ }
+ if repo.CheckoutMaster() {
+ log.Info("checkout master failed", repo.GetGoPath())
+ return
+ }
+ if _, err := repo.MergeToMaster(); err != nil {
+ log.Info("merge from devel failed", repo.GetGoPath(), err)
+ return
+ }
+
+ }
+ })
+ })
+ var problemsWin *repoProblemsWindow
+ grid.NewButton("Repo Problems", func() {
+ if problemsWin != nil {
+ problemsWin.Toggle()
+ return
+ }
+ problemsWin = makeRepoProblemsWindow()
+ })
+ grid.NextRow()
+
+ // grid := hackWin.Group.RawGrid()
+ group2 := hackWin.Stack.NewGroup("Merge")
+ grid = group2.RawGrid()
+
+ grid.NewButton("merge to devel", func() {
+ win.Disable()
+ defer win.Enable()
+
+ mergeUserToDevel(true)
+ })
+
+ grid.NewButton("merge to master", func() {
+ win.Disable()
+ defer win.Enable()
+
+ mergeDevelToMaster(true)
+ })
+
+ grid.NewButton("merge all", func() {
+ win.Disable()
+ defer win.Enable()
+
+ me.argvCheckoutUser = false
+ me.argvCheckoutDevel = true
+ me.argvCheckoutMaster = false
+ if err := doCheckoutShared(); err != nil {
+ log.Info("checkout error:", err)
+ } else {
+ log.Info("checkout was ok")
+ }
+
+ mergeUserToDevel(true)
+
+ me.argvCheckoutUser = false
+ me.argvCheckoutDevel = false
+ me.argvCheckoutMaster = true
+ if err := doCheckoutShared(); err != nil {
+ log.Info("checkout error:", err)
+ } else {
+ log.Info("checkout was ok")
+ }
+
+ mergeDevelToMaster(true)
+ })
+
+ group3 := hackWin.Stack.NewGroup("work in progress")
+ grid = group3.RawGrid()
+
+ grid.NewButton("forge ConfigSave()", func() {
+ me.forge.ConfigSave()
+ })
+
+ grid.NewButton("debugger()", func() {
+ debugger.DebugWindow()
+ })
})
grid.NextRow()
@@ -270,121 +384,6 @@ func drawWindow(win *gadgets.BasicWindow) {
makeStandardReposWindow("All repos", me.found)
})
- me.repoDevelMergeB = grid.NewButton("merge", func() {
- found := findMergeToDevel()
- _, box := makeStandardReposWindow("repos to merge from user to devel", found)
- hbox := box.Box().Horizontal()
- hbox.NewButton("merge all", func() {
- win.Disable()
- defer win.Enable()
- all := found.SortByFullPath()
- for all.Scan() {
- repo := all.Next()
- if repo.CheckDirty() {
- log.Info("repo is dirty", repo.GetGoPath())
- continue
- }
- log.Info("Starting merge on", repo.GetGoPath())
- if repo.CheckoutDevel() {
- log.Info("checkout devel failed", repo.GetGoPath())
- return
- }
- if _, err := repo.MergeToDevel(); err != nil {
- log.Info("merge from user failed", repo.GetGoPath(), err)
- // log.Info(strings.Join(r.Stdout, "\n"))
- // log.Info(strings.Join(r.Stderr, "\n"))
- return
- }
- if repo.CheckoutMaster() {
- log.Info("checkout master failed", repo.GetGoPath())
- return
- }
- if _, err := repo.MergeToMaster(); err != nil {
- log.Info("merge from devel failed", repo.GetGoPath(), err)
- return
- }
-
- }
- })
- })
- var problemsWin *repoProblemsWindow
- grid.NewButton("Repo Problems", func() {
- if problemsWin != nil {
- problemsWin.Toggle()
- return
- }
- problemsWin = makeRepoProblemsWindow()
- })
- grid.NextRow()
-
- group2 = vbox.NewGroup("Merge")
- grid = group2.RawGrid()
-
- grid.NewButton("merge to devel", func() {
- win.Disable()
- defer win.Enable()
-
- mergeUserToDevel(true)
- })
-
- grid.NewButton("merge to master", func() {
- win.Disable()
- defer win.Enable()
-
- mergeDevelToMaster(true)
- })
-
- grid.NewButton("merge all", func() {
- win.Disable()
- defer win.Enable()
-
- me.argvCheckoutUser = false
- me.argvCheckoutDevel = true
- me.argvCheckoutMaster = false
- if err := doCheckoutShared(); err != nil {
- log.Info("checkout error:", err)
- } else {
- log.Info("checkout was ok")
- }
-
- mergeUserToDevel(true)
-
- me.argvCheckoutUser = false
- me.argvCheckoutDevel = false
- me.argvCheckoutMaster = true
- if err := doCheckoutShared(); err != nil {
- log.Info("checkout error:", err)
- } else {
- log.Info("checkout was ok")
- }
-
- mergeDevelToMaster(true)
- })
-
- group3 := vbox.NewGroup("work in progress")
- grid = group3.RawGrid()
-
- grid.NewButton("forge ConfigSave()", func() {
- me.forge.ConfigSave()
- })
-
- grid.NewButton("debugger()", func() {
- debugger.DebugWindow()
- })
-
- /*
- var patchWin *patchesWindow
-
- grid.NewButton("Patches Window", func() {
- if patchWin != nil {
- patchWin.Toggle()
- return
- }
- patchWin = new(patchesWindow)
- patchWin.initWindow()
- patchWin.Show()
- })
- */
}
// sets the text in the labels in the window
@@ -425,9 +424,11 @@ func forgeSwitchMode(newMode forgepb.ForgeMode) {
me.modeUserW.Enable()
}
- if me.forge.Config.Mode != forgepb.ForgeMode_USER {
- doDisableUserW()
- }
+ /*
+ if me.forge.Config.Mode != forgepb.ForgeMode_USER {
+ doDisableUserW()
+ }
+ */
me.forge.SetConfigSave(true)
me.forge.ConfigSave()