package repostatus import ( "go.wit.com/log" ) func (rs *RepoStatus) getCurrentBranchName() string { out := run(rs.repopath, "git", "branch --show-current") log.Warn("getCurrentBranchName() =", out) rs.currentBranch.Set(out) return out } func (rs *RepoStatus) getCurrentBranchVersion() string { out := run(rs.repopath, "git", "describe --tags") log.Warn("getCurrentBranchVersion()", out) rs.currentVersion.Set(out) return out } func (rs *RepoStatus) getLastTagVersion() string { out := run(rs.repopath, "git", "rev-list --tags --max-count=1") log.Warn("getLastTagVersion()", out) rs.lasttagrev = out lastreal := "describe --tags " + out // out = run(r.path, "git", "describe --tags c871d5ecf051a7dc4e3a77157cdbc0a457eb9ae1") out = run(rs.repopath, "git", lastreal) rs.lasttag.Set(out) rs.tagsDrop.Set(out) // rs.lastLabel.Set(out) return out } func (rs *RepoStatus) populateTags() { tmp := fullpath(rs.repopath + "/.git/refs/tags") log.Warn("populateTags() path =", tmp) for _, tag := range listFiles(tmp) { if rs.tags[tag] == "" { log.Warn("populateTags() Adding new tag", tag) rs.tagsDrop.Add(tag) rs.tags[tag] = "origin" } } // rs.tagsDrop.Set(rs.lasttagrev) } func (rs *RepoStatus) checkDirty() bool { out := run(rs.repopath, "git", "diff-index HEAD") if out == "" { log.Warn("checkDirty() no", rs.repopath) rs.dirtyLabel.Set("no") return false } else { log.Warn("checkDirty() true", rs.repopath) rs.dirtyLabel.Set("dirty") return true } } func (rs *RepoStatus) checkoutBranch(branch string) { if rs.checkDirty() { log.Warn("checkoutBranch() checkDirty() == true for repo", rs.repopath, "looking for branch:", branch) return } out := run(rs.repopath, "git", "checkout " + branch) log.Warn(rs.repopath, "git checkout " + branch, "returned", out) realname := rs.getCurrentBranchName() realversion := rs.getCurrentBranchVersion() log.Warn(rs.repopath, "realname =", realname, "realversion =", realversion) if realname == "jcarr" { rs.jcarrBranch.Set(realversion) } if realname == "devel" { rs.develBranch.Set(realversion) } if realname == "master" { rs.masterBranch.Set(realversion) } }