diff options
| author | Jeff Carr <[email protected]> | 2025-02-13 23:20:24 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-02-13 23:20:24 -0600 |
| commit | 116dafc66211935e6fa242ce83eeada54bae25a0 (patch) | |
| tree | 23c5dd401216eaa9aac1c6b399919f06bacd950a | |
| parent | f0572a6198edbc1c4c5d08f46799cc703eb643c3 (diff) | |
merge buttons
| -rw-r--r-- | doGui.go | 161 |
1 files changed, 121 insertions, 40 deletions
@@ -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() } |
