guirelease finally does a single package again
after a week of recoding, fixing and improving the original code, it was able to find a primitive package (toolkits/debian) and update it correctly
This commit is contained in:
parent
e927975dc8
commit
8cc86a91cb
|
@ -7,44 +7,27 @@ import (
|
|||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
func ReCheckReady() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
- // allrepos map[string]*repo
|
||||
-
|
||||
- keys := make([]string, 0, len(me.allrepos))
|
||||
- for key := range me.allrepos {
|
||||
- keys = append(keys, key)
|
||||
- }
|
||||
- sort.Strings(keys)
|
||||
-
|
||||
- for _, path := range keys {
|
||||
- repo := me.allrepos[path]
|
||||
*/
|
||||
|
||||
func CheckReady() bool {
|
||||
if release.current == nil {
|
||||
if me.current == nil {
|
||||
log.Info("find the next repo first")
|
||||
return false
|
||||
}
|
||||
goSumS := release.current.GoState()
|
||||
dirtyS := release.current.State()
|
||||
lastS := release.current.Status.GetLastTagVersion()
|
||||
currentS := release.current.Status.GetCurrentBranchVersion()
|
||||
goSumS := me.current.GoState()
|
||||
dirtyS := me.current.State()
|
||||
lastS := me.current.Status.GetLastTagVersion()
|
||||
currentS := me.current.Status.GetCurrentBranchVersion()
|
||||
|
||||
var targetS string
|
||||
targetS = release.version.String()
|
||||
targetS = me.release.version.String()
|
||||
|
||||
log.Info("repo:", release.current.State(), goSumS, dirtyS, lastS, currentS, targetS)
|
||||
log.Info("repo:", me.current.State(), goSumS, dirtyS, lastS, currentS, targetS)
|
||||
|
||||
if goSumS == "RELEASED" {
|
||||
return true
|
||||
}
|
||||
if release.current.Status.IsPrimitive() {
|
||||
if me.current.Status.IsPrimitive() {
|
||||
if targetS == lastS {
|
||||
release.current.SetGoState("RELEASED")
|
||||
me.current.SetGoState("RELEASED")
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
@ -53,45 +36,45 @@ func CheckReady() bool {
|
|||
}
|
||||
if goSumS == "READY" {
|
||||
if targetS == lastS {
|
||||
release.current.SetGoState("RELEASED")
|
||||
me.current.SetGoState("RELEASED")
|
||||
return true
|
||||
}
|
||||
if lastS == currentS {
|
||||
release.current.SetGoState("UNRELEASED")
|
||||
me.current.SetGoState("UNRELEASED")
|
||||
}
|
||||
return true
|
||||
}
|
||||
release.current.SetGoState("NOT READY")
|
||||
if release.current.Status.ReadOnly() {
|
||||
me.current.SetGoState("NOT READY")
|
||||
if me.current.Status.ReadOnly() {
|
||||
log.Info("\trepo is read only")
|
||||
return false
|
||||
}
|
||||
|
||||
if targetS == lastS {
|
||||
log.Info("\trepo is already done", lastS, "=", targetS)
|
||||
release.current.SetGoState("READY")
|
||||
me.current.SetGoState("READY")
|
||||
return true
|
||||
}
|
||||
if lastS == currentS {
|
||||
log.Info("\trepo is already done", lastS, "=", targetS)
|
||||
release.current.SetGoState("READY")
|
||||
me.current.SetGoState("READY")
|
||||
return true
|
||||
}
|
||||
|
||||
if goSumS == "BAD" {
|
||||
log.Info("\trepo is ready", release.current.State(), "BAD == BAD")
|
||||
log.Info("\trepo is ready", me.current.State(), "BAD == BAD")
|
||||
} else {
|
||||
log.Info("\trepo is ready maybe", release.current.State(), "BAD !=", goSumS)
|
||||
log.Info("\trepo is ready maybe", me.current.State(), "BAD !=", goSumS)
|
||||
}
|
||||
|
||||
if release.current.Status.CheckDirty() {
|
||||
if me.current.Status.CheckDirty() {
|
||||
log.Info("\trepo is dirty")
|
||||
return false
|
||||
} else {
|
||||
log.Info("\trepo is ready", release.current.State(), "not dirty")
|
||||
log.Info("\trepo is ready", me.current.State(), "not dirty")
|
||||
}
|
||||
|
||||
fullpath := filepath.Join(me.goSrcPwd.String(), release.current.State())
|
||||
fullpath := filepath.Join(me.goSrcPwd.String(), me.current.State())
|
||||
|
||||
testf := filepath.Join(fullpath, "go.mod")
|
||||
if Exists(testf) {
|
||||
|
@ -113,14 +96,14 @@ func CheckReady() bool {
|
|||
|
||||
// final checks here
|
||||
if dirtyS == "unchanged" {
|
||||
log.Info("\trepo is ready", release.current.Name(), "unchanged")
|
||||
log.Info("\trepo is ready", me.current.Name(), "unchanged")
|
||||
} else {
|
||||
log.Info("\trepo is not ready", dirtyS, "!= 'unchanged'")
|
||||
return false
|
||||
}
|
||||
|
||||
curName := release.current.Status.GetCurrentBranchName()
|
||||
mName := release.current.Status.GetMasterBranchName()
|
||||
curName := me.current.Status.GetCurrentBranchName()
|
||||
mName := me.current.Status.GetMasterBranchName()
|
||||
|
||||
if curName == mName {
|
||||
log.Info("\trepo is ready working from main branch", curName, "=", mName)
|
||||
|
@ -129,7 +112,7 @@ func CheckReady() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
release.current.SetGoState("READY")
|
||||
me.current.SetGoState("READY")
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
72
doRelease.go
72
doRelease.go
|
@ -12,46 +12,46 @@ import (
|
|||
)
|
||||
|
||||
func doRelease() bool {
|
||||
log.Info("doRelease() on", release.current.Name())
|
||||
log.Info("doRelease() on", me.current.Name())
|
||||
// double check release version logic
|
||||
if release.releaseVersionB.String() != "release version "+release.version.String() {
|
||||
log.Warn("something went wrong with the release.version:", release.version.String())
|
||||
if me.release.releaseVersionB.String() != "release version "+me.release.version.String() {
|
||||
log.Warn("something went wrong with the release.version:", me.release.version.String())
|
||||
return false
|
||||
}
|
||||
if strings.HasPrefix(release.version.String(), "v") {
|
||||
log.Warn("everything is ok. version starts with v.", release.version.String())
|
||||
if strings.HasPrefix(me.release.version.String(), "v") {
|
||||
log.Warn("everything is ok. version starts with v.", me.release.version.String())
|
||||
} else {
|
||||
log.Warn("version does not start with v.", release.version.String())
|
||||
log.Warn("version does not start with v.", me.release.version.String())
|
||||
return false
|
||||
}
|
||||
|
||||
curName := release.current.Status.GetCurrentBranchName()
|
||||
mName := release.current.Status.GetMasterBranchName()
|
||||
curName := me.current.Status.GetCurrentBranchName()
|
||||
mName := me.current.Status.GetMasterBranchName()
|
||||
if curName != mName {
|
||||
log.Info("\trepo is not working from main branch", curName, "!=", mName)
|
||||
return false
|
||||
}
|
||||
|
||||
if !checkValidGoSum(release.current) {
|
||||
if !checkValidGoSum(me.current) {
|
||||
return false
|
||||
}
|
||||
|
||||
log.Info("\ttag and push", curName, release.version.String(), me.releaseReasonS)
|
||||
log.Info("\ttag and push", curName, me.release.version.String(), me.releaseReasonS)
|
||||
|
||||
var all [][]string
|
||||
all = append(all, []string{"git", "add", "-f", "go.mod"})
|
||||
if release.current.Status.IsPrimitive() {
|
||||
if me.current.Status.IsPrimitive() {
|
||||
// don't add go.sum here. TODO: check for go.sum file and fail
|
||||
} else {
|
||||
all = append(all, []string{"git", "add", "-f", "go.sum"})
|
||||
}
|
||||
all = append(all, []string{"git", "commit", "-m", me.releaseReasonS})
|
||||
all = append(all, []string{"git", "push"})
|
||||
all = append(all, []string{"git", "tag", "-m", me.releaseReasonS, release.version.String()})
|
||||
all = append(all, []string{"git", "push", "origin", release.version.String()})
|
||||
all = append(all, []string{"git", "tag", "-m", me.releaseReasonS, me.release.version.String()})
|
||||
all = append(all, []string{"git", "push", "origin", me.release.version.String()})
|
||||
|
||||
if !release.current.Status.DoAll(all) {
|
||||
log.Info("failed to make new release", release.version.String())
|
||||
if !me.current.Status.DoAll(all) {
|
||||
log.Info("failed to make new release", me.release.version.String())
|
||||
return false
|
||||
}
|
||||
log.Info("RELEASE OK")
|
||||
|
@ -63,37 +63,37 @@ func doRelease() bool {
|
|||
}
|
||||
|
||||
log.Info("PUBLISH OK")
|
||||
release.current.SetGoState("RELEASED")
|
||||
me.current.SetGoState("RELEASED")
|
||||
|
||||
// unwind and re-tag. Now that the go.mod and go.sum are published, revert
|
||||
// to the development branch
|
||||
if !release.current.Status.RevertMasterToDevel() {
|
||||
if !me.current.Status.RevertMasterToDevel() {
|
||||
log.Info("Revert Failed")
|
||||
return false
|
||||
}
|
||||
|
||||
// update tag
|
||||
var retag [][]string
|
||||
retag = append(retag, []string{"git", "tag", "--delete", release.version.String()})
|
||||
retag = append(retag, []string{"git", "push", "--delete", "origin", release.version.String()})
|
||||
retag = append(retag, []string{"git", "tag", "-m", me.releaseReasonS, release.version.String()})
|
||||
retag = append(retag, []string{"git", "push", "origin", release.version.String()})
|
||||
retag = append(retag, []string{"git", "tag", "--delete", me.release.version.String()})
|
||||
retag = append(retag, []string{"git", "push", "--delete", "origin", me.release.version.String()})
|
||||
retag = append(retag, []string{"git", "tag", "-m", me.releaseReasonS, me.release.version.String()})
|
||||
retag = append(retag, []string{"git", "push", "origin", me.release.version.String()})
|
||||
|
||||
if !release.current.Status.DoAll(retag) {
|
||||
if !me.current.Status.DoAll(retag) {
|
||||
log.Info("retag failed")
|
||||
return false
|
||||
}
|
||||
log.Info("EVERYTHING OK. RERELEASED", release.current.Name())
|
||||
log.Info("EVERYTHING OK. RERELEASED", me.current.Name())
|
||||
|
||||
// update the values in the GUI
|
||||
release.current.NewScan()
|
||||
me.current.NewScan()
|
||||
|
||||
// attempt to find another repo to release
|
||||
if !doReleaseFindNext() {
|
||||
log.Info("doReleaseFindNext() could not find a new")
|
||||
return false
|
||||
}
|
||||
log.Info("GOOD TO RUN ANOTHER DAY ON:", release.current.Name())
|
||||
log.Info("GOOD TO RUN ANOTHER DAY ON:", me.current.Name())
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -105,12 +105,12 @@ func checkValidGoSum(repo *repolist.Repo) bool {
|
|||
}
|
||||
if ok {
|
||||
log.Info("repo has go.sum requirements that are clean")
|
||||
// release.current.setGoSumStatus("CLEAN")
|
||||
release.status.SetValue("GOOD")
|
||||
release.notes.SetValue("CheckValidGoSum() does not seem to lie")
|
||||
// me.current.setGoSumStatus("CLEAN")
|
||||
me.release.status.SetValue("GOOD")
|
||||
me.release.notes.SetValue("CheckValidGoSum() does not seem to lie")
|
||||
return true
|
||||
}
|
||||
release.notes.SetValue("CheckValidGoSum() failed")
|
||||
me.release.notes.SetValue("CheckValidGoSum() failed")
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -123,7 +123,7 @@ func doReleaseFindNext() bool {
|
|||
log.Info("findNextDirty() could not find anything")
|
||||
return false
|
||||
}
|
||||
if checkValidGoSum(release.current) {
|
||||
if checkValidGoSum(me.current) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -132,12 +132,12 @@ func doReleaseFindNext() bool {
|
|||
// this pulls the new tag from the golang package repository
|
||||
// to insert the new version
|
||||
func doPublishVersion() bool {
|
||||
gopath := release.current.GoPath()
|
||||
cmd := []string{"go", "get", "-v", gopath + "@" + release.version.String()}
|
||||
gopath := me.current.GoPath()
|
||||
cmd := []string{"go", "get", "-v", gopath + "@" + me.release.version.String()}
|
||||
log.Info("SHOULD RUN cmd HERE:", cmd)
|
||||
|
||||
// right now, you can't publish this because the go.* files in this project are screwed up
|
||||
if release.guireleaser == nil {
|
||||
if me.release.guireleaser == nil {
|
||||
log.Info("CAN NOT SELF UPDATE HERE. cmd =", cmd)
|
||||
return false
|
||||
}
|
||||
|
@ -145,11 +145,11 @@ func doPublishVersion() bool {
|
|||
gosum := filepath.Join(homeDir, "go/src/go.wit.com/apps/guireleaser/go.sum")
|
||||
if !shell.Exists(gosum) {
|
||||
log.Info("go.sum must exist here")
|
||||
release.guireleaser.Status.MakeRedomod()
|
||||
me.release.guireleaser.Status.MakeRedomod()
|
||||
}
|
||||
os.Unsetenv("GO111MODULE")
|
||||
log.Info("TRYING TO SELF UPDATE HERE. cmd =", cmd)
|
||||
err, out := release.guireleaser.Status.RunCmd(cmd)
|
||||
err, out := me.release.guireleaser.Status.RunCmd(cmd)
|
||||
if gopath == "go.wit.com/apps/guireleaser" {
|
||||
// ignore errors on updating myself
|
||||
log.Info("IGNORE SELF UPDATE ERROR. cmd =", cmd)
|
||||
|
@ -158,7 +158,7 @@ func doPublishVersion() bool {
|
|||
if err == nil {
|
||||
log.Info("SELF UPDATE OK. out =", out)
|
||||
log.Info("SELF UPDATE WORKED")
|
||||
release.current.SetGoState("RELEASED")
|
||||
me.current.SetGoState("RELEASED")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
|
|
@ -31,8 +31,8 @@ func lookToUnwind(r *repolist.Repo) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
if release.version.String() != r.LastTag() {
|
||||
log.Info("\trepo version mismatch last vs official", r.LastTag(), "!=", release.version.String())
|
||||
if me.release.version.String() != r.LastTag() {
|
||||
log.Info("\trepo version mismatch last vs official", r.LastTag(), "!=", me.release.version.String())
|
||||
r.SetGoState("CAN NOT UNWIND")
|
||||
return false
|
||||
}
|
||||
|
|
28
main.go
28
main.go
|
@ -74,9 +74,6 @@ func main() {
|
|||
// which should be all the git repositories in ~/go/src & the .config file
|
||||
me.repos = makeRepoView()
|
||||
|
||||
// register a Show/Hide function for the repo list table
|
||||
me.repos.View.RegisterHideFunction(showHideRepos)
|
||||
|
||||
// the left side of the window options
|
||||
globalDisplayOptions(me.mainBox)
|
||||
|
||||
|
@ -89,17 +86,36 @@ func main() {
|
|||
// tool to release the code for this app, the gui and the gui toolkits
|
||||
// and sometimes they lie, don't display stuff, don't even disable things
|
||||
// so I can't trust even what I see. It's complicated right now still.
|
||||
release.openrepo.Disable()
|
||||
me.release.openrepo.Disable()
|
||||
|
||||
me.Disable()
|
||||
log.Sleep(5)
|
||||
|
||||
// parse config file and scan for .git repos
|
||||
me.repos.initRepoList()
|
||||
setTargetVersion()
|
||||
|
||||
// reads in the State of all the repos
|
||||
// register a Show/Hide function for the repo list table
|
||||
me.repos.View.RegisterHideFunction(showHideRepos)
|
||||
|
||||
// scan in the State of all the repos
|
||||
// TODO: should not really be necessary directly after init()
|
||||
// me.repos.View.ScanRepositories()
|
||||
me.repos.View.ScanRepositories()
|
||||
|
||||
// find myself. the guireleaser directory is used as a working scratchpad
|
||||
// for running go commands that can mess up the go.* files
|
||||
for _, repo := range me.repos.View.AllRepos() {
|
||||
if repo.GoPath() == "go.wit.com/apps/guireleaser" {
|
||||
if me.release.guireleaser == nil {
|
||||
me.release.guireleaser = repo
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if me.release.guireleaser == nil {
|
||||
log.Info("Can not release if guireleaser was not found")
|
||||
os.Exit(0)
|
||||
}
|
||||
me.Enable()
|
||||
|
||||
// intermittently scans the status indefinitly
|
||||
|
|
151
releaseBox.go
151
releaseBox.go
|
@ -14,10 +14,8 @@ import (
|
|||
"go.wit.com/lib/gui/repolist"
|
||||
)
|
||||
|
||||
var release releaseStruct
|
||||
|
||||
type releaseStruct struct {
|
||||
current *repolist.Repo
|
||||
// current *repolist.Repo
|
||||
|
||||
box *gui.Node
|
||||
group *gui.Node
|
||||
|
@ -60,13 +58,13 @@ func (w *autoType) Enable() {
|
|||
func createReleaseBox(box *gui.Node) {
|
||||
initWhitelist()
|
||||
|
||||
// release.box = box
|
||||
release.box = box.NewVerticalBox("vbox")
|
||||
release.group = release.box.NewGroup("Current Repo")
|
||||
release.grid = release.group.NewGrid("buildOptions", 0, 0)
|
||||
release.grid.NextRow()
|
||||
// me.release.box = box
|
||||
me.release.box = box.NewVerticalBox("vbox")
|
||||
me.release.group = me.release.box.NewGroup("Current Repo")
|
||||
me.release.grid = me.release.group.NewGrid("buildOptions", 0, 0)
|
||||
me.release.grid.NextRow()
|
||||
|
||||
release.releaseVersionB = release.grid.NewButton("release version", func() {
|
||||
me.release.releaseVersionB = me.release.grid.NewButton("release version", func() {
|
||||
buttonDisable()
|
||||
if doRelease() {
|
||||
buttonEnable()
|
||||
|
@ -75,34 +73,34 @@ func createReleaseBox(box *gui.Node) {
|
|||
log.Info("doRelease() failed")
|
||||
}
|
||||
})
|
||||
release.grid.NextRow()
|
||||
me.release.grid.NextRow()
|
||||
|
||||
release.repo = gadgets.NewOneLiner(release.grid, "repo")
|
||||
release.openrepo = release.grid.NewButton("Configure", func() {
|
||||
release.current.Status.Toggle()
|
||||
me.release.repo = gadgets.NewOneLiner(me.release.grid, "repo")
|
||||
me.release.openrepo = me.release.grid.NewButton("Configure", func() {
|
||||
me.current.Status.Toggle()
|
||||
})
|
||||
release.openrepo.Disable()
|
||||
release.grid.NextRow()
|
||||
release.status = gadgets.NewOneLiner(release.grid, "status")
|
||||
release.grid.NextRow()
|
||||
release.readOnly = gadgets.NewOneLiner(release.grid, "read-only")
|
||||
release.grid.NextRow()
|
||||
release.notes = gadgets.NewOneLiner(release.grid, "notes")
|
||||
release.grid.NextRow()
|
||||
me.release.openrepo.Disable()
|
||||
me.release.grid.NextRow()
|
||||
me.release.status = gadgets.NewOneLiner(me.release.grid, "status")
|
||||
me.release.grid.NextRow()
|
||||
me.release.readOnly = gadgets.NewOneLiner(me.release.grid, "read-only")
|
||||
me.release.grid.NextRow()
|
||||
me.release.notes = gadgets.NewOneLiner(me.release.grid, "notes")
|
||||
me.release.grid.NextRow()
|
||||
|
||||
release.version = gadgets.NewOneLiner(release.grid, "version")
|
||||
release.grid.NextRow()
|
||||
me.release.version = gadgets.NewOneLiner(me.release.grid, "version")
|
||||
me.release.grid.NextRow()
|
||||
|
||||
release.reason = gadgets.NewBasicEntry(release.grid, "release reason")
|
||||
release.reason.SetText(me.releaseReasonS)
|
||||
release.grid.NextRow()
|
||||
me.release.reason = gadgets.NewBasicEntry(me.release.grid, "release reason")
|
||||
me.release.reason.SetText(me.releaseReasonS)
|
||||
me.release.grid.NextRow()
|
||||
|
||||
me.autoWorkingPwd = gadgets.NewOneLiner(release.grid, "working directory (pwd)")
|
||||
release.grid.NextRow()
|
||||
me.userHomePwd = gadgets.NewOneLiner(release.grid, "user home")
|
||||
release.grid.NextRow()
|
||||
me.goSrcPwd = gadgets.NewOneLiner(release.grid, "go src home")
|
||||
release.grid.NextRow()
|
||||
me.autoWorkingPwd = gadgets.NewOneLiner(me.release.grid, "working directory (pwd)")
|
||||
me.release.grid.NextRow()
|
||||
me.userHomePwd = gadgets.NewOneLiner(me.release.grid, "user home")
|
||||
me.release.grid.NextRow()
|
||||
me.goSrcPwd = gadgets.NewOneLiner(me.release.grid, "go src home")
|
||||
me.release.grid.NextRow()
|
||||
|
||||
homeDir, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
|
@ -119,26 +117,37 @@ func createReleaseBox(box *gui.Node) {
|
|||
panic("redo go.sum")
|
||||
}
|
||||
|
||||
group := release.box.NewGroup("Run on Current Repo")
|
||||
group := me.release.box.NewGroup("Run on Current Repo")
|
||||
grid := group.NewGrid("buildOptions", 0, 0)
|
||||
|
||||
grid.NewButton("set to IGNORE", func() {
|
||||
tmp := release.current.GoState()
|
||||
tmp := me.current.GoState()
|
||||
log.Info("trying to set repo IGNORE is now =", tmp)
|
||||
release.current.SetGoState("IGNORE")
|
||||
release.whitelist[release.current.GoPath()] = release.current
|
||||
me.current.SetGoState("IGNORE")
|
||||
me.release.whitelist[me.current.GoPath()] = me.current
|
||||
})
|
||||
|
||||
release.checkGoSumB = grid.NewButton("checkValidGoSum()", func() {
|
||||
me.release.checkGoSumB = grid.NewButton("checkValidGoSum()", func() {
|
||||
buttonDisable()
|
||||
checkValidGoSum(release.current)
|
||||
checkValidGoSum(me.current)
|
||||
buttonEnable()
|
||||
})
|
||||
|
||||
grid.NewButton("Check Ready", func() {
|
||||
buttonDisable()
|
||||
defer buttonEnable()
|
||||
if CheckReady() {
|
||||
log.Info("repo is ready", me.current.Name())
|
||||
return
|
||||
} else {
|
||||
log.Info("\trepo is not ready", me.current.Name())
|
||||
}
|
||||
})
|
||||
grid.NextRow()
|
||||
|
||||
group = release.box.NewGroup("Process against all repos")
|
||||
group = me.release.box.NewGroup("Process against all repos")
|
||||
grid = group.NewGrid("buildOptions", 0, 0)
|
||||
grid.NewButton("release all", func() {
|
||||
grid.NewButton("doRelease() all", func() {
|
||||
var worked bool = true
|
||||
buttonDisable()
|
||||
// rather than loop forever, at least limit this to the number of repos
|
||||
|
@ -148,7 +157,7 @@ func createReleaseBox(box *gui.Node) {
|
|||
if doRelease() {
|
||||
log.Info("doRelease() worked")
|
||||
} else {
|
||||
if release.status.String() == "ALL DONE?" {
|
||||
if me.release.status.String() == "ALL DONE?" {
|
||||
log.Info("maybe ALL DONE?")
|
||||
buttonEnable()
|
||||
worked = true
|
||||
|
@ -165,43 +174,22 @@ func createReleaseBox(box *gui.Node) {
|
|||
buttonEnable()
|
||||
})
|
||||
|
||||
grid.NewButton("find first repo", func() {
|
||||
// set the target versions
|
||||
setTargetVersion()
|
||||
|
||||
// have to run this twice for now. not sure why
|
||||
// this is old
|
||||
scanForReady()
|
||||
scanForReady()
|
||||
|
||||
findNextDirty("")
|
||||
})
|
||||
|
||||
grid.NewButton("Check Ready", func() {
|
||||
buttonDisable()
|
||||
defer buttonEnable()
|
||||
goSumS := release.current.GoState()
|
||||
dirtyS := release.current.State()
|
||||
lastS := release.current.LastTag()
|
||||
if CheckReady() {
|
||||
log.Info("repo is ready", release.current.Name(), goSumS, dirtyS, lastS)
|
||||
return
|
||||
} else {
|
||||
log.Info("\trepo is not ready", release.current.Name(), goSumS, dirtyS, lastS)
|
||||
}
|
||||
})
|
||||
grid.NewButton("scan for Ready", func() {
|
||||
me.Disable()
|
||||
scanForReady()
|
||||
me.Enable()
|
||||
})
|
||||
grid.NewButton("findNextDirty()", func() {
|
||||
grid.NewButton("findNextDirty(PRIMATIVE)", func() {
|
||||
me.Disable()
|
||||
defer me.Enable()
|
||||
if findNextDirty("PRIMATIVE") {
|
||||
log.Info("findNextDirty() found a repo")
|
||||
return
|
||||
}
|
||||
})
|
||||
grid.NewButton("findNextDirty()", func() {
|
||||
me.Disable()
|
||||
defer me.Enable()
|
||||
if findNextDirty("") {
|
||||
log.Info("findNextDirty() found a repo")
|
||||
return
|
||||
|
@ -209,7 +197,7 @@ func createReleaseBox(box *gui.Node) {
|
|||
})
|
||||
grid.NextRow()
|
||||
|
||||
group = release.box.NewGroup("experimental and dangerous stuff")
|
||||
group = me.release.box.NewGroup("experimental and dangerous stuff")
|
||||
grid = group.NewGrid("buildOptions", 0, 0)
|
||||
grid.NewButton("rm -f go.mod go.sum", func() {
|
||||
me.Disable()
|
||||
|
@ -297,14 +285,14 @@ func setCurrentRepo(newcur *repolist.Repo, s string, note string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
release.repo.SetText(newcur.GoPath())
|
||||
release.status.SetText(s)
|
||||
release.notes.SetText(note)
|
||||
release.current = newcur
|
||||
release.version.SetText(release.current.Status.GetTargetVersion())
|
||||
release.releaseVersionB.SetText("release version " + release.current.Status.GetTargetVersion())
|
||||
// release.unreleaseB.SetText("un-release version " + release.current.targetVersion.String())
|
||||
release.openrepo.Enable()
|
||||
me.release.repo.SetText(newcur.GoPath())
|
||||
me.release.status.SetText(s)
|
||||
me.release.notes.SetText(note)
|
||||
me.current = newcur
|
||||
me.release.version.SetText(me.current.Status.GetTargetVersion())
|
||||
me.release.releaseVersionB.SetText("release version " + me.current.Status.GetTargetVersion())
|
||||
// me.release.unreleaseB.SetText("un-release version " + me.current.targetVersion.String())
|
||||
me.release.openrepo.Enable()
|
||||
|
||||
return true
|
||||
}
|
||||
|
@ -354,18 +342,25 @@ func findNextDirty(onlyKind string) bool {
|
|||
continue
|
||||
}
|
||||
log.Info("findNextDirty()", repo.GoPath(), goSumS)
|
||||
// do makeredomod here
|
||||
// if ! repo.Status.Exists("go.sum") {
|
||||
// }
|
||||
if repo.Status.IsPrimitive() {
|
||||
if setCurrentRepo(repo, "PRIMATIVE", "release new version") {
|
||||
return true
|
||||
}
|
||||
continue
|
||||
}
|
||||
if checkValidGoSum(release.current) {
|
||||
log.Info("findNextDirty()", repo.GoPath(), "is not a primative repo")
|
||||
if onlyKind == "PRIMITIVE" {
|
||||
continue
|
||||
}
|
||||
if checkValidGoSum(repo) {
|
||||
setCurrentRepo(repo, "should be good to release", "pretty sure")
|
||||
return true
|
||||
}
|
||||
}
|
||||
log.Info("tried to findNextDirty() but not sure what to do next")
|
||||
release.status.SetText("ALL DONE?")
|
||||
me.release.status.SetText("ALL DONE?")
|
||||
return false
|
||||
}
|
||||
|
|
20
scanGoSum.go
20
scanGoSum.go
|
@ -1,15 +1,12 @@
|
|||
// This is a simple example
|
||||
package main
|
||||
|
||||
import (
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
/*
|
||||
func scanGoSum() {
|
||||
for _, repo := range me.repos.View.AllRepos() {
|
||||
if repo.GoPath() == "go.wit.com/apps/guireleaser" {
|
||||
if release.guireleaser == nil {
|
||||
release.guireleaser = repo
|
||||
if me.release.guireleaser == nil {
|
||||
me.release.guireleaser = repo
|
||||
}
|
||||
}
|
||||
latestversion := repo.Status.GetLastTagVersion()
|
||||
|
@ -29,11 +26,11 @@ func scanGoSum() {
|
|||
log.Info("dirty repo.getGoSumStatus =", repo.GoState())
|
||||
repo.SetGoState("DIRTY")
|
||||
|
||||
// release.repo.SetValue(repo.status.String())
|
||||
// release.status.SetValue("dirty")
|
||||
// release.notes.SetValue("You must commit your changes\nbefore you can continue")
|
||||
// release.current = repo
|
||||
// release.openrepo.Enable()
|
||||
// me.release.repo.SetValue(repo.status.String())
|
||||
// me.release.status.SetValue("dirty")
|
||||
// me.release.notes.SetValue("You must commit your changes\nbefore you can continue")
|
||||
// me.current = repo
|
||||
// me.release.openrepo.Enable()
|
||||
continue
|
||||
}
|
||||
status := repo.State()
|
||||
|
@ -47,3 +44,4 @@ func scanGoSum() {
|
|||
}
|
||||
log.Info("scanGoSum() did everything, not sure what to do next")
|
||||
}
|
||||
*/
|
||||
|
|
12
structs.go
12
structs.go
|
@ -4,20 +4,20 @@ package main
|
|||
import (
|
||||
"go.wit.com/gui"
|
||||
"go.wit.com/lib/gadgets"
|
||||
"go.wit.com/lib/gui/repolist"
|
||||
)
|
||||
|
||||
// the main window nodes
|
||||
// var reposwin *gadgets.BasicWindow
|
||||
var reposbox *gui.Node
|
||||
var reposgrid *gui.Node
|
||||
var reposgroup *gui.Node
|
||||
|
||||
var me *autoType
|
||||
|
||||
type autoType struct {
|
||||
myGui *gui.Node
|
||||
|
||||
releaseReasonS string // = "gocui dropdown select"
|
||||
release releaseStruct
|
||||
reposbox *gui.Node
|
||||
reposgrid *gui.Node
|
||||
reposgroup *gui.Node
|
||||
current *repolist.Repo
|
||||
|
||||
// guireleaser window
|
||||
mainWindow *gui.Node
|
||||
|
|
10
whitelist.go
10
whitelist.go
|
@ -8,18 +8,18 @@ import (
|
|||
)
|
||||
|
||||
func initWhitelist() {
|
||||
release.whitelist = make(map[string]*repolist.Repo)
|
||||
me.release.whitelist = make(map[string]*repolist.Repo)
|
||||
for _, repo := range me.repos.View.AllRepos() {
|
||||
if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/davecgh") {
|
||||
release.whitelist[repo.GoPath()] = repo
|
||||
me.release.whitelist[repo.GoPath()] = repo
|
||||
}
|
||||
//
|
||||
// if repo.String() == "go.wit.com/apps/guireleaser" {
|
||||
// release.whitelist[repo.String()] = repo
|
||||
// me.release.whitelist[repo.String()] = repo
|
||||
// }
|
||||
//
|
||||
// if repo.String() == "go.wit.com/lib/gui/repostatus" {
|
||||
// release.whitelist[repo.String()] = repo
|
||||
// me.release.whitelist[repo.String()] = repo
|
||||
// }
|
||||
//
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ func whitelist(path string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
_, ok := release.whitelist[path]
|
||||
_, ok := me.release.whitelist[path]
|
||||
if ok {
|
||||
// log.Info("whitelist ok == true", path)
|
||||
return true
|
||||
|
|
Loading…
Reference in New Issue