merge buttons

This commit is contained in:
Jeff Carr 2025-02-13 23:20:24 -06:00
parent f0572a6198
commit 116dafc662
1 changed files with 126 additions and 45 deletions

171
doGui.go
View File

@ -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
}
me.forge.PrintHumanTable(me.found)
mergeUserToDevel(me.autoCreateBranches.Checked())
})
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
} else {
}
grid.NewButton("merge to master", func() {
win.Disable()
defer win.Enable()
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)
}
break
}
me.forge.SetConfigSave(true)
// view.Update()
}
me.forge.ConfigSave()
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
}
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)
// 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()
}
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
}
for _, line := range result.Stdout {
log.Warn("stdout:", line)
}
for _, line := range result.Stderr {
log.Warn("stderr:", line)
}
break
}
me.forge.SetConfigSave(true)
// view.Update()
}
me.forge.ConfigSave()
}