code reorg and clean
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
95fd6ca05a
commit
f7947b08b6
|
@ -0,0 +1,73 @@
|
|||
package repostatus
|
||||
|
||||
import (
|
||||
"go.wit.com/lib/gadgets"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
func (rs *RepoStatus) makeBranchesBox() {
|
||||
rs.gitBranchesGroup = rs.window.Box().NewGroup("branches")
|
||||
newgrid := rs.gitBranchesGroup.NewGrid("gridnuts", 2, 2)
|
||||
|
||||
rs.lasttag = gadgets.NewOneLiner(newgrid, "last tag")
|
||||
|
||||
rs.masterBranchVersion = gadgets.NewOneLiner(newgrid, "master")
|
||||
rs.develBranchVersion = gadgets.NewOneLiner(newgrid, "devel")
|
||||
rs.userBranchVersion = gadgets.NewOneLiner(newgrid, "user")
|
||||
|
||||
rs.currentBranch = gadgets.NewOneLiner(newgrid, "current branch")
|
||||
rs.currentVersion = gadgets.NewOneLiner(newgrid, "current version")
|
||||
|
||||
rs.showBranchesButton = newgrid.NewButton("getBranches()", func() {
|
||||
all := rs.getBranches()
|
||||
i := len(all)
|
||||
log.Log(WARN, "branch count =", i)
|
||||
})
|
||||
|
||||
rs.checkBranchesButton = newgrid.NewButton("CheckBranches()", func() {
|
||||
if rs.CheckBranches() {
|
||||
log.Log(WARN, "Branches are perfect")
|
||||
} else {
|
||||
log.Log(WARN, "Branches are not perfect")
|
||||
}
|
||||
})
|
||||
|
||||
newgrid.NewButton("show .git/config", func() {
|
||||
if rs.gitConfig == nil {
|
||||
log.Log(WARN, "Nonexistant or damaged .git/config", rs.String())
|
||||
return
|
||||
}
|
||||
log.Log(WARN, ".git/config:", rs.realPath.String())
|
||||
|
||||
// The info:
|
||||
for name, remote := range rs.gitConfig.remotes {
|
||||
log.Log(WARN, " ", name, "url:", remote.url)
|
||||
}
|
||||
for name, branch := range rs.gitConfig.branches {
|
||||
log.Log(WARN, " ", name, "remote:", branch.remote, "merge", branch.merge)
|
||||
}
|
||||
})
|
||||
|
||||
newgrid.NewButton("CheckDirty()", func() {
|
||||
if rs.CheckDirty() {
|
||||
log.Log(WARN, "is dirty")
|
||||
} else {
|
||||
log.Log(WARN, "is not dirty")
|
||||
}
|
||||
})
|
||||
|
||||
// rs.TagsW = rs.TagWindow()
|
||||
|
||||
newgrid.NewButton("Show tags", func() {
|
||||
if rs.TagsW == nil {
|
||||
log.Warn("error: found rs.TagsW == nil")
|
||||
rs.TagsW = rs.TagWindow()
|
||||
return
|
||||
}
|
||||
if rs.TagsW.Hidden() {
|
||||
rs.TagsW.Show()
|
||||
} else {
|
||||
rs.TagsW.Show()
|
||||
}
|
||||
})
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
package repostatus
|
||||
|
||||
import (
|
||||
"go.wit.com/lib/gadgets"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
func (rs *RepoStatus) drawGitCommands() {
|
||||
rs.gitCommandsGroup = rs.window.Box().NewGroup("git commands")
|
||||
newgrid := rs.gitCommandsGroup.NewGrid("gridnuts", 0, 0)
|
||||
|
||||
newgrid.NewButton("update", func() {
|
||||
rs.Update()
|
||||
})
|
||||
newgrid.NextRow()
|
||||
|
||||
newgrid.NewButton("git pull", func() {
|
||||
var cmd []string
|
||||
cmd = append(cmd, "git", "pull")
|
||||
err, b, output := RunCmd(rs.realPath.String(), cmd)
|
||||
log.Warn("Did git pull here", err, b, output)
|
||||
})
|
||||
newgrid.NextRow()
|
||||
|
||||
label := "merge " + rs.userWorkingName.String() + " to " + rs.develWorkingName.String()
|
||||
rs.develMergeB = newgrid.NewButton(label, func() {
|
||||
rs.Disable()
|
||||
if rs.RunDevelMergeB() {
|
||||
log.Warn("THINGS SEEM OK fullAutomation() returned true.")
|
||||
} else {
|
||||
log.Warn("THINGS FAILED fullAutomation() returned false")
|
||||
}
|
||||
rs.Enable()
|
||||
})
|
||||
|
||||
label = "merge " + rs.develWorkingName.String() + " to " + rs.mainWorkingName.String()
|
||||
rs.mainMergeB = newgrid.NewButton(label, func() {
|
||||
rs.Disable()
|
||||
if rs.RunDevelMergeB() {
|
||||
log.Warn("THINGS SEEM OK fullAutomation() returned true.")
|
||||
} else {
|
||||
log.Warn("THINGS FAILED fullAutomation() returned false")
|
||||
}
|
||||
rs.Enable()
|
||||
})
|
||||
newgrid.NextRow()
|
||||
|
||||
rs.major = gadgets.NewBasicCombobox(newgrid, "major")
|
||||
rs.major.Custom = func() {
|
||||
rs.setTag()
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.major.Hide()
|
||||
newgrid.NextRow()
|
||||
|
||||
rs.minor = gadgets.NewBasicCombobox(newgrid, "minor")
|
||||
rs.minor.Custom = func() {
|
||||
rs.setTag()
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.minor.Hide()
|
||||
newgrid.NextRow()
|
||||
|
||||
rs.revision = gadgets.NewBasicCombobox(newgrid, "revision")
|
||||
rs.revision.Custom = func() {
|
||||
rs.setTag()
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.revision.Hide()
|
||||
newgrid.NextRow()
|
||||
|
||||
// newgrid.NewLabel("new tag version")
|
||||
rs.newversion = newgrid.NewLabel("0.0.1")
|
||||
rs.newversion.Hide()
|
||||
newgrid.NextRow()
|
||||
|
||||
rs.versionMessage = gadgets.NewBasicEntry(newgrid, "tag message")
|
||||
rs.versionMessage.Custom = func() {
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.versionMessage.Hide()
|
||||
newgrid.NextRow()
|
||||
|
||||
rs.versionCmdOutput = gadgets.NewOneLiner(newgrid, "tag cmd")
|
||||
rs.versionCmdOutput.Hide()
|
||||
newgrid.NextRow()
|
||||
|
||||
rs.releaseVersion = newgrid.NewButton("tag and release new version", func() {
|
||||
rs.Disable()
|
||||
rs.runReleaseVersionB()
|
||||
})
|
||||
rs.releaseVersion.Hide()
|
||||
newgrid.NextRow()
|
||||
|
||||
newgrid.Margin()
|
||||
newgrid.Pad()
|
||||
}
|
171
draw.go
171
draw.go
|
@ -20,81 +20,14 @@ func (rs *RepoStatus) draw() {
|
|||
rs.drawGitStatus()
|
||||
|
||||
// display the git branches and options
|
||||
rs.drawGitBranches()
|
||||
rs.makeBranchesBox()
|
||||
|
||||
// show standard git commit and merge controls
|
||||
rs.drawGitCommands()
|
||||
}
|
||||
|
||||
func (rs *RepoStatus) drawGitBranches() {
|
||||
rs.gitBranchesGroup = rs.window.Box().NewGroup("branches")
|
||||
newgrid := rs.gitBranchesGroup.NewGrid("gridnuts", 2, 2)
|
||||
|
||||
rs.lasttag = gadgets.NewOneLiner(newgrid, "last tag")
|
||||
|
||||
rs.masterBranchVersion = gadgets.NewOneLiner(newgrid, "master")
|
||||
rs.develBranchVersion = gadgets.NewOneLiner(newgrid, "devel")
|
||||
rs.userBranchVersion = gadgets.NewOneLiner(newgrid, "user")
|
||||
|
||||
rs.currentBranch = gadgets.NewOneLiner(newgrid, "current branch")
|
||||
rs.currentVersion = gadgets.NewOneLiner(newgrid, "current version")
|
||||
|
||||
rs.showBranchesButton = newgrid.NewButton("getBranches()", func() {
|
||||
all := rs.getBranches()
|
||||
i := len(all)
|
||||
log.Log(WARN, "branch count =", i)
|
||||
})
|
||||
|
||||
rs.checkBranchesButton = newgrid.NewButton("CheckBranches()", func() {
|
||||
if rs.CheckBranches() {
|
||||
log.Log(WARN, "Branches are perfect")
|
||||
} else {
|
||||
log.Log(WARN, "Branches are not perfect")
|
||||
}
|
||||
})
|
||||
|
||||
newgrid.NewButton("show .git/config", func() {
|
||||
if rs.gitConfig == nil {
|
||||
log.Log(WARN, "Nonexistant or damaged .git/config", rs.String())
|
||||
return
|
||||
}
|
||||
log.Log(WARN, ".git/config:", rs.realPath.String())
|
||||
|
||||
// The info:
|
||||
for name, remote := range rs.gitConfig.remotes {
|
||||
log.Log(WARN, " ", name, "url:", remote.url)
|
||||
}
|
||||
for name, branch := range rs.gitConfig.branches {
|
||||
log.Log(WARN, " ", name, "remote:", branch.remote, "merge", branch.merge)
|
||||
}
|
||||
})
|
||||
|
||||
newgrid.NewButton("CheckDirty()", func() {
|
||||
if rs.CheckDirty() {
|
||||
log.Log(WARN, "is dirty")
|
||||
} else {
|
||||
log.Log(WARN, "is not dirty")
|
||||
}
|
||||
})
|
||||
|
||||
rs.TagsW = rs.TagWindow()
|
||||
|
||||
newgrid.NewButton("Show tags", func() {
|
||||
if rs.TagsW == nil {
|
||||
log.Warn("error: found rs.TagsW == nil")
|
||||
rs.TagsW = rs.TagWindow()
|
||||
return
|
||||
}
|
||||
if rs.TagsW.Hidden() {
|
||||
rs.TagsW.Show()
|
||||
} else {
|
||||
rs.TagsW.Show()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (rs *RepoStatus) drawGitStatus() {
|
||||
rs.gitStatusGroup = rs.window.Box().NewGroup("What GO Knows It Has")
|
||||
rs.gitStatusGroup = rs.window.Box().NewGroup("What GIT Knows It Has")
|
||||
newgrid := rs.gitStatusGroup.NewGrid("gridnuts", 2, 2)
|
||||
newgrid.Margin()
|
||||
newgrid.Pad()
|
||||
|
@ -109,16 +42,19 @@ func (rs *RepoStatus) drawGitStatus() {
|
|||
rs.develWorkingName.SetValue("devel")
|
||||
rs.userWorkingName = gadgets.NewOneLiner(newgrid, "user working branch")
|
||||
rs.userWorkingName.SetValue("uid")
|
||||
rs.tagsDrop = gadgets.NewBasicDropdown(newgrid, "all releases")
|
||||
|
||||
// git for-each-ref --sort=taggerdate --format '%(tag) ,,,_,,, %(subject)' refs/tags
|
||||
var cmd []string
|
||||
cmd = append(cmd, "git", "for-each-ref", "--sort=taggerdate", "--format", "%(tag) %(subject)", "refs/tags")
|
||||
_, _, output := RunCmd(rs.realPath.String(), cmd)
|
||||
log.Log(INFO, output)
|
||||
for _, line := range strings.Split(output, "\n") {
|
||||
rs.tagsDrop.AddText(line)
|
||||
}
|
||||
/*
|
||||
rs.tagsDrop = gadgets.NewBasicDropdown(newgrid, "all releases")
|
||||
|
||||
// git for-each-ref --sort=taggerdate --format '%(tag) ,,,_,,, %(subject)' refs/tags
|
||||
var cmd []string
|
||||
cmd = append(cmd, "git", "for-each-ref", "--sort=taggerdate", "--format", "%(tag) %(subject)", "refs/tags")
|
||||
_, _, output := rs.RunCmd(cmd)
|
||||
log.Log(INFO, output)
|
||||
for _, line := range strings.Split(output, "\n") {
|
||||
rs.tagsDrop.AddText(line)
|
||||
}
|
||||
*/
|
||||
|
||||
rs.dirtyLabel = gadgets.NewOneLiner(newgrid, "dirty")
|
||||
rs.readOnly = gadgets.NewOneLiner(newgrid, "read only")
|
||||
|
@ -202,85 +138,6 @@ func (rs *RepoStatus) runFullAutomation() bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func (rs *RepoStatus) drawGitCommands() {
|
||||
rs.gitCommandsGroup = rs.window.Box().NewGroup("git commands")
|
||||
newgrid := rs.gitCommandsGroup.NewGrid("gridnuts", 2, 2)
|
||||
|
||||
newgrid.NewButton("update", func() {
|
||||
rs.Update()
|
||||
})
|
||||
|
||||
newgrid.NewButton("git pull", func() {
|
||||
var cmd []string
|
||||
cmd = append(cmd, "git", "pull")
|
||||
err, b, output := RunCmd(rs.realPath.String(), cmd)
|
||||
log.Warn("Did git pull here", err, b, output)
|
||||
})
|
||||
|
||||
label := "merge " + rs.userWorkingName.String() + " to " + rs.develWorkingName.String()
|
||||
rs.develMergeB = newgrid.NewButton(label, func() {
|
||||
rs.Disable()
|
||||
if rs.RunDevelMergeB() {
|
||||
log.Warn("THINGS SEEM OK fullAutomation() returned true.")
|
||||
} else {
|
||||
log.Warn("THINGS FAILED fullAutomation() returned false")
|
||||
}
|
||||
rs.Enable()
|
||||
})
|
||||
|
||||
label = "merge " + rs.develWorkingName.String() + " to " + rs.mainWorkingName.String()
|
||||
rs.mainMergeB = newgrid.NewButton(label, func() {
|
||||
rs.Disable()
|
||||
if rs.RunDevelMergeB() {
|
||||
log.Warn("THINGS SEEM OK fullAutomation() returned true.")
|
||||
} else {
|
||||
log.Warn("THINGS FAILED fullAutomation() returned false")
|
||||
}
|
||||
rs.Enable()
|
||||
})
|
||||
|
||||
rs.major = gadgets.NewBasicCombobox(newgrid, "major")
|
||||
rs.major.Custom = func() {
|
||||
rs.setTag()
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.major.Hide()
|
||||
rs.minor = gadgets.NewBasicCombobox(newgrid, "minor")
|
||||
rs.minor.Custom = func() {
|
||||
rs.setTag()
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.minor.Hide()
|
||||
rs.revision = gadgets.NewBasicCombobox(newgrid, "revision")
|
||||
rs.revision.Custom = func() {
|
||||
rs.setTag()
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.revision.Hide()
|
||||
|
||||
// newgrid.NewLabel("new tag version")
|
||||
rs.newversion = newgrid.NewLabel("0.0.1")
|
||||
rs.newversion.Hide()
|
||||
|
||||
rs.versionMessage = gadgets.NewBasicEntry(newgrid, "tag message")
|
||||
rs.versionMessage.Custom = func() {
|
||||
rs.generateCmd()
|
||||
}
|
||||
rs.versionMessage.Hide()
|
||||
|
||||
rs.versionCmdOutput = gadgets.NewOneLiner(newgrid, "tag cmd")
|
||||
rs.versionCmdOutput.Hide()
|
||||
|
||||
rs.releaseVersion = newgrid.NewButton("tag and release new version", func() {
|
||||
rs.Disable()
|
||||
rs.runReleaseVersionB()
|
||||
})
|
||||
rs.releaseVersion.Hide()
|
||||
|
||||
newgrid.Margin()
|
||||
newgrid.Pad()
|
||||
}
|
||||
|
||||
var releaseRevision string = ""
|
||||
|
||||
// over ride the computation of this if a release is being created
|
||||
|
|
4
git.go
4
git.go
|
@ -54,7 +54,7 @@ func (rs *RepoStatus) getLastTagVersion() string {
|
|||
// out = run(r.path, "git", "describe --tags c871d5ecf051a7dc4e3a77157cdbc0a457eb9ae1")
|
||||
out = run(rs.realPath.String(), "git", lastreal)
|
||||
rs.lasttag.SetValue(out)
|
||||
rs.tagsDrop.SetText(out)
|
||||
// rs.tagsDrop.SetText(out)
|
||||
// rs.lastLabel.SetText(out)
|
||||
return out
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ func (rs *RepoStatus) populateTags() {
|
|||
for _, tag := range listFiles(tmp) {
|
||||
if rs.tags[tag] == "" {
|
||||
log.Log(INFO, "populateTags() Adding new tag", tag)
|
||||
rs.tagsDrop.AddText(tag)
|
||||
// rs.tagsDrop.AddText(tag)
|
||||
rs.tags[tag] = "origin"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package repostatus
|
||||
|
||||
import "go.wit.com/log"
|
||||
|
||||
// reverts master to devel
|
||||
// used in the unwind process of making GUI releases
|
||||
func (rs *RepoStatus) RevertMasterToDevel() bool {
|
||||
if rs.CheckDirty() {
|
||||
log.Info("sorry, it's still dirty")
|
||||
return false
|
||||
}
|
||||
|
||||
curName := rs.GetCurrentBranchName()
|
||||
mName := rs.GetMasterBranchName()
|
||||
if curName != mName {
|
||||
log.Info("repo is not working from main branch", curName, "!=", mName)
|
||||
return false
|
||||
}
|
||||
|
||||
log.Info("reset master to devel", curName, rs.String())
|
||||
|
||||
// git checkout devel
|
||||
// git branch -D master
|
||||
// git branch master
|
||||
// git checkout master
|
||||
// git push --set-upstream --force origin master
|
||||
|
||||
var all [][]string
|
||||
all = append(all, []string{"git", "checkout", "devel"})
|
||||
all = append(all, []string{"git", "branch", "-D", mName})
|
||||
all = append(all, []string{"git", "branch", mName})
|
||||
all = append(all, []string{"git", "checkout", mName})
|
||||
all = append(all, []string{"git", "push", "--set-upstream", "--force", "origin", mName})
|
||||
|
||||
// all = append(all, []string{"git", "tag", "--delete", release.version.String()})
|
||||
// all = append(all, []string{"git", "push", "--delete", "origin", release.version.String()})
|
||||
|
||||
if rs.DoAll(all) {
|
||||
log.Info("EVERYTHING OK. RERELEASED", rs.String())
|
||||
return true
|
||||
}
|
||||
|
||||
log.Info("SOMETHING FAILED")
|
||||
return false
|
||||
}
|
|
@ -29,7 +29,7 @@ type RepoStatus struct {
|
|||
|
||||
currentBranch *gadgets.OneLiner
|
||||
currentVersion *gadgets.OneLiner
|
||||
tagsDrop *gadgets.BasicDropdown
|
||||
// tagsDrop *gadgets.BasicDropdown
|
||||
|
||||
lasttag *gadgets.OneLiner
|
||||
masterBranchVersion *gadgets.OneLiner
|
||||
|
|
16
tagWindow.go
16
tagWindow.go
|
@ -119,7 +119,9 @@ func (tagW *repoTags) newTagBox(box *gui.Node) {
|
|||
|
||||
tags := []string{"%(tag)", "%(*objectname)", "%(taggerdate:raw)", "%(subject)"}
|
||||
format := strings.Join(tags, "_,,,_")
|
||||
err, output := tagW.rs.RunCmd([]string{"git", "for-each-ref", "--sort=taggerdate", "--format", format})
|
||||
cmd := []string{"git", "for-each-ref", "--sort=taggerdate", "--format", format}
|
||||
log.Info("RUNNING:", strings.Join(cmd, " "))
|
||||
err, output := tagW.rs.RunCmd(cmd)
|
||||
if err != nil {
|
||||
output = "git error_,,,_a_,,,_b_,,,c"
|
||||
}
|
||||
|
@ -147,7 +149,17 @@ func (tagW *repoTags) newTagBox(box *gui.Node) {
|
|||
|
||||
rTag.subject = grid.NewLabel(parts[3])
|
||||
rTag.deleteB = grid.NewButton("delete", func() {
|
||||
log.Info("remove tag")
|
||||
tagversion := parts[0]
|
||||
log.Info("remove tag", tagversion)
|
||||
var all [][]string
|
||||
all = append(all, []string{"git", "tag", "--delete", tagversion})
|
||||
all = append(all, []string{"git", "push", "--delete", "origin", tagversion})
|
||||
|
||||
if tagW.rs.DoAll(all) {
|
||||
log.Info("TAG DELETED", tagW.rs.String(), tagversion)
|
||||
} else {
|
||||
log.Info("TAG DELETE FAILED", tagW.rs.String(), tagversion)
|
||||
}
|
||||
})
|
||||
|
||||
tagW.tags = append(tagW.tags, rTag)
|
||||
|
|
13
unix.go
13
unix.go
|
@ -411,3 +411,16 @@ func (rs *RepoStatus) XtermHold(args []string) {
|
|||
log.Info("cmd = xterm", argsX)
|
||||
}
|
||||
}
|
||||
|
||||
func (rs *RepoStatus) DoAll(all [][]string) bool {
|
||||
for _, cmd := range all {
|
||||
log.Info("doAll() RUNNING: cmd =", cmd)
|
||||
err, out := rs.RunCmd(cmd)
|
||||
log.Info("doAll() err =", err)
|
||||
log.Info("doAll() out =", out)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue