From 36fb1bb1dab634d7bc900a5fc2556efab50eb061 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 30 Jan 2024 13:32:04 -0600 Subject: [PATCH] merge automation Signed-off-by: Jeff Carr --- repolist.go | 176 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 119 insertions(+), 57 deletions(-) diff --git a/repolist.go b/repolist.go index a2f37e8..8cbe85e 100644 --- a/repolist.go +++ b/repolist.go @@ -77,63 +77,6 @@ func (r *repo) Show() { r.hidden = false } -// This creates a window -func repolistWindow() { - reposwin = gadgets.NewBasicWindow(me.myGui, "All git repositories in ~/go/src/") - reposwin.Make() - - reposbox = reposwin.Box().NewBox("bw vbox", false) - reposwin.Draw() - reposwin.Custom = func() { - log.Warn("GOT HERE: main() gadgets.NewBasicWindow() close") - log.Warn("Should I do something special here?") - } - - reposgroup = reposbox.NewGroup("go repositories (read from ~/.config/myrepolist)") - reposgrid = reposgroup.NewGrid("test", 9, 1) - - reposgrid.NewLabel("") // path goes here - - reposgrid.NewLabel("last tag").SetProgName("last tag") - - reposgrid.NewLabel("master version") - reposgrid.NewLabel("devel version") - reposgrid.NewLabel("user version") - - reposgrid.NewLabel("Status") - reposgrid.NewLabel("go.sum") - - reposgrid.NewLabel("Current Version").SetProgName("Current Version") - - reposgrid.NewLabel("Show()") - - repos := myrepolist() - for _, line := range repos { - log.Verbose("repo =", line) - path, mbranch, dbranch, ubranch := splitLine(line) - if mbranch == "" { - mbranch = "master" - } - if dbranch == "" { - dbranch = "devel" - } - usr, _ := user.Current() - if ubranch == "" { - ubranch = usr.Username - } - addRepo(reposgrid, path, mbranch, dbranch, ubranch) - } - - for i, path := range repostatus.ListGitDirectories() { - // log.Info("addRepo()", i, path) - tmp := strings.TrimPrefix(path, "/home/jcarr/go/src/") - log.Info("addRepo()", i, tmp) - addRepo(reposgrid, tmp, "master", "master", "master") - } - - reposwin.Toggle() -} - func addRepo(grid *gui.Node, path string, master string, devel string, user string) { _, ok := me.allrepos[path] if ok { @@ -194,3 +137,122 @@ func addRepo(grid *gui.Node, path string, master string, devel string, user stri */ me.allrepos[path] = newRepo } + +// This creates a window +func repolistWindow() { + reposwin = gadgets.NewBasicWindow(me.myGui, "All git repositories in ~/go/src/") + reposwin.Make() + + reposbox = reposwin.Box().NewBox("bw vbox", false) + reposwin.Draw() + reposwin.Custom = func() { + log.Warn("GOT HERE: main() gadgets.NewBasicWindow() close") + log.Warn("Should I do something special here?") + } + + reposgroup = reposbox.NewGroup("go repositories (read from ~/.config/myrepolist)") + reposgrid = reposgroup.NewGrid("test", 9, 1) + + reposgrid.NewLabel("") // path goes here + + reposgrid.NewLabel("last tag").SetProgName("last tag") + + reposgrid.NewLabel("master version") + reposgrid.NewLabel("devel version") + reposgrid.NewLabel("user version") + + reposgrid.NewLabel("Status") + reposgrid.NewLabel("go.sum") + + reposgrid.NewLabel("Current Version").SetProgName("Current Version") + + reposgrid.NewLabel("Show()") + + repos := myrepolist() + for _, line := range repos { + log.Verbose("repo =", line) + path, mbranch, dbranch, ubranch := splitLine(line) + if mbranch == "" { + mbranch = "master" + } + if dbranch == "" { + dbranch = "devel" + } + usr, _ := user.Current() + if ubranch == "" { + ubranch = usr.Username + } + addRepo(reposgrid, path, mbranch, dbranch, ubranch) + } + + for i, path := range repostatus.ListGitDirectories() { + // log.Info("addRepo()", i, path) + tmp := strings.TrimPrefix(path, "/home/jcarr/go/src/") + log.Info("addRepo()", i, tmp) + addRepo(reposgrid, tmp, "master", "master", "master") + } + + reposgroup.NewButton("merge all user to devel", func() { + reposwin.Disable() + log.Info("merge all here") + for _, repo := range me.allrepos { + if repo.status.ReadOnly() { + log.Info("skipping readonly", repo.String(), repo.dirtyLabel.String()) + continue + } + if repo.dirtyLabel.String() != "merge to devel" { + log.Info("skipping. not merge to devel", repo.String(), repo.dirtyLabel.String()) + continue + } + if repo.status.CheckDirty() { + log.Info("skipping dirty", repo.String(), repo.dirtyLabel.String()) + continue + } + log.Info("found", repo.String(), repo.dirtyLabel.String()) + // repo.status.Update() + if repo.status.RunDevelMergeB() { + log.Warn("THINGS SEEM OK fullAutomation() returned true.") + } else { + log.Warn("THINGS FAILED fullAutomation() returned false") + return + } + repo.status.Update() + repo.newScan() + } + log.Warn("EVERYTHING WORKED") + reposwin.Enable() + }) + + reposgroup.NewButton("merge all devel to main", func() { + reposwin.Disable() + log.Info("merge all here") + for _, repo := range me.allrepos { + if repo.status.ReadOnly() { + log.Info("skipping readonly", repo.String(), repo.dirtyLabel.String()) + continue + } + if repo.dirtyLabel.String() != "merge to main" { + log.Info("skipping. not merge to main", repo.String(), repo.dirtyLabel.String()) + continue + } + if repo.status.CheckDirty() { + log.Info("skipping dirty", repo.String(), repo.dirtyLabel.String()) + continue + } + log.Info("found", repo.String(), repo.dirtyLabel.String()) + // repo.status.Update() + if repo.status.RunDevelMergeB() { + log.Warn("THINGS SEEM OK fullAutomation() returned true.") + } else { + log.Warn("THINGS FAILED fullAutomation() returned false") + return + } + repo.status.Update() + repo.newScan() + } + log.Warn("EVERYTHING WORKED") + reposwin.Enable() + }) + + reposwin.Toggle() +}