summaryrefslogtreecommitdiff
path: root/update.go
diff options
context:
space:
mode:
Diffstat (limited to 'update.go')
-rw-r--r--update.go72
1 files changed, 61 insertions, 11 deletions
diff --git a/update.go b/update.go
index e7544d6..0ab1709 100644
--- a/update.go
+++ b/update.go
@@ -16,24 +16,33 @@ func (rs *RepoStatus) Update() {
}
log.Log(WARN, "Update() START")
duration := timeFunction(func () {
+ // do things that are safe even if the git tree is dirty
rs.path.Set(rs.repopath)
rs.getCurrentBranchName()
rs.window.Title(rs.repopath + " GO repo Details")
rs.getCurrentBranchVersion()
-
rs.getLastTagVersion()
rs.populateTags()
- // rs.checkDirty() this runs
- log.Log(WARN, "")
- log.Log(WARN, "checkoutBranch master")
- rs.checkoutBranch("master")
- log.Log(WARN, "")
- log.Log(WARN, "checkoutBranch devel")
- rs.checkoutBranch("devel")
- log.Log(WARN, "")
- log.Log(WARN, "checkoutBranch jcarr")
- rs.checkoutBranch("jcarr")
+ if rs.checkDirty() {
+ if rs.dirtyLabel.Get() != "no" {
+ rs.DisableEverything()
+ return
+ }
+
+ // rs.checkDirty() this runs
+ log.Log(WARN, "")
+ log.Log(WARN, "checkoutBranch master")
+ rs.checkoutBranch("master")
+ log.Log(WARN, "")
+ log.Log(WARN, "checkoutBranch devel")
+ rs.checkoutBranch("devel")
+ log.Log(WARN, "")
+ log.Log(WARN, "checkoutBranch jcarr")
+ rs.checkoutBranch("jcarr")
+
+ rs.recommend()
+ }
})
rs.setSpeed(duration)
log.Log(WARN, "Update() END")
@@ -55,3 +64,44 @@ func (rs *RepoStatus) setSpeed(duration time.Duration) {
rs.speed.Set("FAST")
}
}
+
+// disable all things besides Update() button
+func (rs *RepoStatus) DisableEverything() {
+
+ // choosing a major, minor or revision
+ rs.major.Disable()
+ rs.minor.Disable()
+ rs.revision.Disable()
+
+ // disable adding a tag message
+ rs.versionMessage.Disable()
+
+ // disable the merge devel to master button
+ rs.develMerge.Disable()
+
+ // disable the tag a new version button
+ rs.releaseVersion.Disable()
+}
+
+// this means devel needs to be merged to master
+func (rs *RepoStatus) EnableMergeDevel() {
+ rs.DisableEverything()
+
+ rs.develMerge.Enable()
+}
+
+// this means you need to release a new version of the master repository
+func (rs *RepoStatus) EnableSelectTag() {
+ rs.DisableEverything()
+
+ // choosing a major, minor or revision
+ rs.major.Enable()
+ rs.minor.Enable()
+ rs.revision.Enable()
+
+ // disable adding a tag message
+ rs.versionMessage.Enable()
+
+ // force there to be a commit message
+ rs.releaseVersion.Disable()
+}