summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-13 23:20:24 -0600
committerJeff Carr <[email protected]>2025-02-13 23:20:24 -0600
commit116dafc66211935e6fa242ce83eeada54bae25a0 (patch)
tree23c5dd401216eaa9aac1c6b399919f06bacd950a
parentf0572a6198edbc1c4c5d08f46799cc703eb643c3 (diff)
merge buttons
-rw-r--r--doGui.go161
1 files changed, 121 insertions, 40 deletions
diff --git a/doGui.go b/doGui.go
index 18daed6..cb54cb8 100644
--- a/doGui.go
+++ b/doGui.go
@@ -234,52 +234,133 @@ func drawWindow(win *gadgets.BasicWindow) {
win.Disable()
defer win.Enable()
- me.found = new(gitpb.Repos)
- findReposWithPatches()
- if me.found.Len() == 0 {
- log.Info("you currently have no patches in your user branches")
- return
+ mergeUserToDevel(me.autoCreateBranches.Checked())
+ })
+
+ grid.NewButton("merge to master", func() {
+ win.Disable()
+ defer win.Enable()
+
+ mergeDevelToMaster(me.autoCreateBranches.Checked())
+ })
+}
+
+func findMergeToMaster() {
+ me.found = new(gitpb.Repos)
+
+ all := me.forge.Repos.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ if repo.IsDirty() {
+ continue
+ }
+ if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
+ continue
}
- me.forge.PrintHumanTable(me.found)
+ if repo.GetMasterVersion() != repo.GetDevelVersion() {
+ me.found.AppendByGoPath(repo)
+ continue
+ }
+ }
+ now := time.Now()
+ if me.found.Len() == 0 {
+ log.Info("nothing to merge with master")
+ return
+ }
+ me.forge.PrintHumanTable(me.found)
- now := time.Now()
- // check for devel branches
- total, count, nope, _ := IsEverythingOnDevel()
- log.Printf("Devel branch check. %d total repos. (%d ok) (%d not on devel branch) (%s)\n", total, count, nope, shell.FormatDuration(time.Since(now)))
- if nope != 0 {
- return
+ // check for merges from devel
+ total, count, nope, _ := IsEverythingOnMaster()
+ log.Printf("Master branch check. %d total repos. (%d ok) (%d not on master branch) (%s)\n", total, count, nope, shell.FormatDuration(time.Since(now)))
+
+}
+
+func mergeDevelToMaster(doit bool) {
+ findMergeToMaster()
+
+ if !doit {
+ return
+ }
+
+ all := me.found.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ log.Info("repo:", repo.GetGoPath())
+ if result, err := repo.MergeToMaster(); err == nil {
+ log.Warn("THINGS SEEM OK", repo.GetFullPath())
+ for _, line := range result.Stdout {
+ log.Warn("stdout:", line)
+ }
+ for _, line := range result.Stderr {
+ log.Warn("stderr:", line)
+ }
} else {
+ log.Warn("THINGS FAILED ", repo.GetFullPath())
+ log.Warn("err", err)
+ if result == nil {
+ break
+ }
+ for _, line := range result.Stdout {
+ log.Warn("stdout:", line)
+ }
+ for _, line := range result.Stderr {
+ log.Warn("stderr:", line)
+ }
+ log.Warn("THINGS FAILED ", repo.GetFullPath())
+ break
}
+ me.forge.SetConfigSave(true)
+ // view.Update()
+ }
+ me.forge.ConfigSave()
+}
- all := me.found.SortByFullPath()
- for all.Scan() {
- repo := all.Next()
- log.Info("repo:", repo.GetGoPath())
- if result, err := repo.MergeToDevel(); err == nil {
- log.Warn("THINGS SEEM OK", repo.GetFullPath())
- for _, line := range result.Stdout {
- log.Warn("stdout:", line)
- }
- for _, line := range result.Stderr {
- log.Warn("stderr:", line)
- }
- } else {
- log.Warn("THINGS FAILED ", repo.GetFullPath())
- log.Warn("err", err)
- if result == nil {
- break
- }
- for _, line := range result.Stdout {
- log.Warn("stdout:", line)
- }
- for _, line := range result.Stderr {
- log.Warn("stderr:", line)
- }
+func mergeUserToDevel(doit bool) {
+ me.found = new(gitpb.Repos)
+ findReposWithPatches()
+ if me.found.Len() == 0 {
+ log.Info("you currently have no patches in your user branches")
+ return
+ }
+ me.forge.PrintHumanTable(me.found)
+
+ now := time.Now()
+ // check for devel branches
+ total, count, nope, _ := IsEverythingOnDevel()
+ log.Printf("Devel branch check. %d total repos. (%d ok) (%d not on devel branch) (%s)\n", total, count, nope, shell.FormatDuration(time.Since(now)))
+
+ if !doit {
+ return
+ }
+
+ all := me.found.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ log.Info("repo:", repo.GetGoPath())
+ if result, err := repo.MergeToDevel(); err == nil {
+ log.Warn("THINGS SEEM OK", repo.GetFullPath())
+ for _, line := range result.Stdout {
+ log.Warn("stdout:", line)
+ }
+ for _, line := range result.Stderr {
+ log.Warn("stderr:", line)
+ }
+ } else {
+ log.Warn("THINGS FAILED ", repo.GetFullPath())
+ log.Warn("err", err)
+ if result == nil {
break
}
- me.forge.SetConfigSave(true)
- // view.Update()
+ for _, line := range result.Stdout {
+ log.Warn("stdout:", line)
+ }
+ for _, line := range result.Stderr {
+ log.Warn("stderr:", line)
+ }
+ break
}
- me.forge.ConfigSave()
- })
+ me.forge.SetConfigSave(true)
+ // view.Update()
+ }
+ me.forge.ConfigSave()
}