parent
1248e21394
commit
e2acf6511e
42
draw.go
42
draw.go
|
@ -1,7 +1,6 @@
|
|||
package repostatus
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
|
@ -62,23 +61,15 @@ func (rs *RepoStatus) drawGitBranches() {
|
|||
newgrid.NewButton("show branches", func() {
|
||||
all := rs.getBranches()
|
||||
i := len(all)
|
||||
count.Set(strconv.Itoa(i))
|
||||
count.Set(strconv.Itoa(i) + " branches")
|
||||
})
|
||||
count = newgrid.NewLabel("")
|
||||
|
||||
newgrid.NewButton("check branches", func() {
|
||||
all := rs.getBranches()
|
||||
path := fullpath(rs.repopath + "/.git/refs/")
|
||||
for _, b := range all {
|
||||
parts := strings.Split(b, "/")
|
||||
rdir := "heads"
|
||||
if len(parts) == 2 {
|
||||
rdir = "remotes"
|
||||
}
|
||||
fullfile := path + "/" + rdir + "/" + b
|
||||
content, _ := ioutil.ReadFile(fullfile)
|
||||
hash := strings.TrimSpace(string(content))
|
||||
// log.Warn(fullfile)
|
||||
log.Warn(hash, b)
|
||||
if rs.checkBranches() {
|
||||
log.Warn("Branches are perfect")
|
||||
} else {
|
||||
log.Warn("Branches are not perfect")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -121,12 +112,13 @@ func (rs *RepoStatus) drawGitCommands() {
|
|||
log.Warn("something went wrong switching to the master branch. full stop!")
|
||||
return
|
||||
}
|
||||
if rs.runGitCommands() {
|
||||
log.Warn("THINGS SEEM OK")
|
||||
} else {
|
||||
if ! rs.runGitCommands() {
|
||||
log.Warn("SOMETHING WENT WRONG")
|
||||
return
|
||||
}
|
||||
rs.develMerge.Disable() // don't let this run twice for now
|
||||
rs.Update()
|
||||
log.Warn("THINGS SEEM OK")
|
||||
})
|
||||
|
||||
rs.major = gadgets.NewBasicCombobox(newgrid, "major")
|
||||
|
@ -159,11 +151,11 @@ func (rs *RepoStatus) drawGitCommands() {
|
|||
return
|
||||
}
|
||||
log.Warn("COMMIT IT HERE")
|
||||
if rs.runGitCommands() {
|
||||
log.Warn("THINGS SEEM OK")
|
||||
} else {
|
||||
if ! rs.runGitCommands() {
|
||||
log.Warn("SOMETHING WENT WRONG")
|
||||
}
|
||||
rs.Update()
|
||||
log.Warn("THINGS SEEM OK")
|
||||
})
|
||||
|
||||
newgrid.Margin()
|
||||
|
@ -183,12 +175,10 @@ func (rs *RepoStatus) setTag() bool {
|
|||
log.Warn("current release a,b,c =", major, minor, revision)
|
||||
|
||||
newa, _ := strconv.Atoi(rs.major.Get())
|
||||
newb, _ := strconv.Atoi(rs.minor.Get())
|
||||
newc, _ := strconv.Atoi(rs.revision.Get())
|
||||
|
||||
newver := strconv.Itoa(newa)
|
||||
if newa < olda {
|
||||
log.Warn("new version bad", newver, "vs old version", lasttag)
|
||||
log.Warn("new version bad", newver, "vs old version", lasttag, "newa =", newa, "olda =", olda)
|
||||
rs.newversion.Set("bad")
|
||||
return false
|
||||
}
|
||||
|
@ -200,9 +190,10 @@ func (rs *RepoStatus) setTag() bool {
|
|||
return true
|
||||
}
|
||||
|
||||
newb, _ := strconv.Atoi(rs.minor.Get())
|
||||
newver = strconv.Itoa(newa) + "." + strconv.Itoa(newb)
|
||||
if newb < oldb {
|
||||
log.Warn("new version bad", newver, "vs old version", lasttag)
|
||||
log.Warn("new version bad", newver, "vs old version", lasttag, "newb =", newb, "oldb =", oldb)
|
||||
rs.newversion.Set("bad")
|
||||
return false
|
||||
}
|
||||
|
@ -214,6 +205,7 @@ func (rs *RepoStatus) setTag() bool {
|
|||
return true
|
||||
}
|
||||
|
||||
newc, _ := strconv.Atoi(rs.revision.Get())
|
||||
newver = strconv.Itoa(newa) + "." + strconv.Itoa(newb) + "." + strconv.Itoa(newc)
|
||||
if newc <= oldc {
|
||||
log.Warn("new version bad", newver, "vs old version", lasttag)
|
||||
|
|
50
git.go
50
git.go
|
@ -1,6 +1,10 @@
|
|||
package repostatus
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"unicode/utf8"
|
||||
|
||||
"io/ioutil"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
|
@ -110,3 +114,49 @@ func (rs *RepoStatus) checkoutBranch(level string, branch string) {
|
|||
default:
|
||||
}
|
||||
}
|
||||
|
||||
func (rs *RepoStatus) checkBranches() bool {
|
||||
var hashCheck string
|
||||
var perfect bool = true
|
||||
all := rs.getBranches()
|
||||
path := fullpath(rs.repopath + "/.git/refs/")
|
||||
for _, b := range all {
|
||||
parts := strings.Split(b, "/")
|
||||
rdir := "heads"
|
||||
if len(parts) == 2 {
|
||||
rdir = "remotes"
|
||||
}
|
||||
fullfile := path + "/" + rdir + "/" + b
|
||||
|
||||
// check if the ref name is "HEAD". if so, skip
|
||||
runeCount := utf8.RuneCountInString(fullfile)
|
||||
// Convert the string to a slice of runes
|
||||
runes := []rune(fullfile)
|
||||
// Slice the last 4 runes
|
||||
lastFour := runes[runeCount-4:]
|
||||
if string(lastFour) == "HEAD" {
|
||||
log.Warn("skip HEAD fullfile", fullfile)
|
||||
continue
|
||||
}
|
||||
|
||||
content, _ := ioutil.ReadFile(fullfile)
|
||||
hash := strings.TrimSpace(string(content))
|
||||
if hashCheck == "" {
|
||||
hashCheck = hash
|
||||
}
|
||||
var cmd []string
|
||||
cmd = append(cmd, "git", "show", "-s", "--format=%ci", hash)
|
||||
_, _, output := runCmd(rs.repopath, cmd)
|
||||
// git show -s --format=%ci <hash> will give you the time
|
||||
// log.Warn(fullfile)
|
||||
if hash == hashCheck {
|
||||
log.Warn(hash, output, b)
|
||||
} else {
|
||||
log.Warn(hash, output, b, "NOT THE SAME")
|
||||
perfect = false
|
||||
parts := strings.Split(b, "/")
|
||||
log.Warn("git push", parts)
|
||||
}
|
||||
}
|
||||
return perfect
|
||||
}
|
||||
|
|
2
unix.go
2
unix.go
|
@ -125,7 +125,7 @@ func runCmd(path string, parts []string) (error, bool, string) {
|
|||
thing := parts[0]
|
||||
parts = parts[1:]
|
||||
|
||||
log.Warn("path =", path, "thing =", thing, "cmdline =", parts)
|
||||
log.Info("path =", path, "thing =", thing, "cmdline =", parts)
|
||||
// Create the command
|
||||
cmd := exec.Command(thing, parts...)
|
||||
|
||||
|
|
Loading…
Reference in New Issue