136 lines
3.4 KiB
Go
136 lines
3.4 KiB
Go
// This is a simple example
|
|
package main
|
|
|
|
import (
|
|
"go.wit.com/gui"
|
|
"go.wit.com/log"
|
|
|
|
"go.wit.com/lib/gadgets"
|
|
)
|
|
|
|
var release releaseStruct
|
|
|
|
type releaseStruct struct {
|
|
current *repo
|
|
|
|
win *gadgets.BasicWindow
|
|
box *gui.Node
|
|
group *gui.Node
|
|
grid *gui.Node
|
|
repo *gadgets.OneLiner
|
|
status *gadgets.OneLiner
|
|
notes *gadgets.OneLiner
|
|
version *gadgets.OneLiner
|
|
reason *gadgets.OneLiner
|
|
|
|
openrepo *gui.Node
|
|
}
|
|
|
|
func createReleaseWindow() {
|
|
if release.win != nil {
|
|
release.win.Toggle()
|
|
return
|
|
}
|
|
|
|
release.win = gadgets.NewBasicWindow(me.myGui, "Make a new release")
|
|
release.win.Custom = func() {
|
|
log.Info("Release Window close")
|
|
}
|
|
|
|
release.win.Make()
|
|
release.win.StandardClose()
|
|
release.win.Draw()
|
|
release.box = release.win.Box()
|
|
release.group = release.box.NewGroup("things")
|
|
release.grid = release.group.NewGrid("buildOptions", 2, 1)
|
|
|
|
// do an initial scan of all the repos
|
|
scanGoSum()
|
|
|
|
release.grid.NewButton("next repo", func() {
|
|
log.Info("find the next repo to release here")
|
|
findNextRepo()
|
|
})
|
|
|
|
release.openrepo = release.grid.NewButton("open repo", func() {
|
|
if release.current == nil {
|
|
log.Info("find the next repo first")
|
|
return
|
|
}
|
|
if release.current.status.CheckGoSum() {
|
|
log.Info("repo has go.sum requirements that are clean")
|
|
release.status.SetValue("CLEAN")
|
|
release.current.goSumStatus.SetValue("CLEAN")
|
|
} else {
|
|
log.Info("repo has go.sum requirements that are screwed up")
|
|
release.status.SetValue("BAD")
|
|
release.current.goSumStatus.SetValue("BAD")
|
|
}
|
|
release.current.status.Update()
|
|
release.current.newScan()
|
|
|
|
if release.current.dirtyLabel.String() == "PERFECT" {
|
|
return
|
|
}
|
|
|
|
// log.Info("find the next repo to release here")
|
|
release.current.status.Toggle()
|
|
})
|
|
release.openrepo.Disable()
|
|
|
|
release.repo = gadgets.NewOneLiner(release.grid, "repo")
|
|
release.status = gadgets.NewOneLiner(release.grid, "status")
|
|
release.notes = gadgets.NewOneLiner(release.grid, "notes")
|
|
|
|
release.version = gadgets.NewOneLiner(release.grid, "version")
|
|
release.version.SetValue("0.13.11")
|
|
|
|
release.reason = gadgets.NewOneLiner(release.grid, "reason")
|
|
release.reason.SetValue("release automation")
|
|
|
|
release.grid.NewButton("send version", func() {
|
|
log.Info("set version()")
|
|
release.current.status.SetVersion("0", "13", "11", "release automation")
|
|
})
|
|
release.grid.NewButton("set ignore", func() {
|
|
tmp := release.current.goSumStatus.String()
|
|
log.Info("trying to set repo IGNORE is now =", tmp)
|
|
release.current.goSumStatus.SetValue("IGNORE")
|
|
release.current.goSumStatus.SetLabel("IGNORE")
|
|
release.current.goSumStatus.SetText("IGNORE")
|
|
})
|
|
}
|
|
|
|
func findNextRepo() {
|
|
for repo, _ := range me.allrepos {
|
|
goSumS := repo.goSumStatus.String()
|
|
dirtyS := repo.dirtyLabel.String()
|
|
|
|
log.Info("repo", repo.String(), goSumS, dirtyS)
|
|
if goSumS == "IGNORE" {
|
|
continue
|
|
}
|
|
// latestversion := repo.status.GetLastTagVersion()
|
|
if goSumS == "CLEAN" {
|
|
if dirtyS == "PERFECT" {
|
|
continue
|
|
}
|
|
release.repo.SetValue(repo.status.String())
|
|
release.status.SetValue("clean")
|
|
release.notes.SetValue("check manually")
|
|
release.current = repo
|
|
release.openrepo.Enable()
|
|
return
|
|
}
|
|
if goSumS == "DIRTY" {
|
|
release.repo.SetValue(repo.status.String())
|
|
release.status.SetValue("dirty")
|
|
release.notes.SetValue("commit changes")
|
|
release.current = repo
|
|
release.openrepo.Enable()
|
|
return
|
|
}
|
|
}
|
|
log.Info("tried to find() but not sure what to do next")
|
|
}
|