merge buttons
This commit is contained in:
parent
f0572a6198
commit
116dafc662
171
doGui.go
171
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
|
||||
}
|
||||
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()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue