automation improvements

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-01-26 09:34:13 -06:00
parent 2723e53396
commit 9147079092
2 changed files with 88 additions and 10 deletions

View File

@ -76,6 +76,15 @@ func (rs *RepoStatus) drawGitBranches() {
log.Log(WARN, "is not dirty")
}
})
newgrid.NewButton("CheckSafeGoSumRemake()", func() {
if ok, bad := rs.CheckSafeGoSumRemake(); ok {
log.Log(WARN, "CheckSafeGoSumRemake() is safe to redo")
} else {
log.Log(WARN, "CheckSafeGoSumRemake() is not safe. problems:", bad)
}
})
newgrid.NewButton("CheckGoSum()", func() {
if ok, missing := rs.CheckGoSum(); ok {
log.Log(WARN, "CheckGoSum() is ok")

View File

@ -314,6 +314,75 @@ func (rs *RepoStatus) ScanGoSrc() {
}
}
// check if it is safe to remake the go.sum & go.mod files
func (rs *RepoStatus) CheckSafeGoSumRemake() (bool, []string) {
if rs.ReadGoMod() {
log.Log(INFO, "parsed go.mod", rs.realPath.String())
} else {
log.Log(WARN, "Something went wrong parsing go.mod", rs.realPath.String())
return false, nil
}
log.Log(WARN, "go.sum:", rs.realPath.String())
var clean []string
for depname, version := range rs.goConfig {
if strings.HasSuffix(depname, "/v2") {
log.Log(WARN, " FOUND /v2 wierd golang stuff. instead, look for:", depname)
depname = strings.TrimSuffix(depname, "/v2")
}
log.Log(WARN, " ", depname, version)
deprs, ok := windowMap[depname]
if ok {
if deprs.CheckDirty() {
log.Log(WARN, " IS DIRTY", deprs.String())
clean = append(clean, deprs.String())
}
if deprs.readOnly.String() == "true" {
log.Log(WARN, " SKIPPING Read Only", deprs.String())
} else {
goSumS := deprs.goSumStatus.String()
log.Log(WARN, " FOUND", deprs.String(), goSumS)
username := deprs.userWorkingName.String()
userhash, _ := deprs.gitConfig.hashes[username]
userversion, _ := deprs.gitConfig.versions[userhash]
log.Log(WARN, " username :"+username, userhash)
log.Log(WARN, " username :"+username, userversion)
if version == userversion {
log.Log(WARN, " USER VERSIONS MATCH", version, userversion)
if deprs.goSumStatus.String() == "BAD" {
log.Log(WARN, " USER VERSION IS BAD!! return false")
clean = append(clean, deprs.String())
}
} else {
switch goSumS {
case "CLEAN":
log.Log(WARN, " USER VERSIONS MISMATCH", version, userversion)
log.Log(WARN, " IGNORE CLEAN REPO")
case "PRIMATIVE":
log.Log(WARN, " USER VERSIONS MISMATCH", version, userversion)
log.Log(WARN, " IGNORE PRIMATIVE REPO")
default:
log.Log(WARN, " USER VERSIONS MISMATCH", version, userversion)
clean = append(clean, deprs.String())
}
}
}
} else {
log.Log(WARN, " NOT FOUND", depname)
// only fail on our stuff
if strings.HasPrefix(depname, "go.wit.com") {
// log.Log(WARN, " go get -v", depname)
// rs.RunCmd([]string{"go", "get", "-v", depname})
return false, clean
}
log.Log(WARN, " NOT FOUND BUT IGNORING FOR NOW")
}
}
if len(clean) == 0 {
return true, nil
}
return false, clean
}
func (rs *RepoStatus) CheckGoSum() (bool, string) {
if rs.ReadGoMod() {
log.Log(INFO, "parsed go.mod", rs.realPath.String())
@ -328,24 +397,24 @@ func (rs *RepoStatus) CheckGoSum() (bool, string) {
depname = strings.TrimSuffix(depname, "/v2")
}
log.Log(WARN, " ", depname, version)
newrs, ok := windowMap[depname]
deprs, ok := windowMap[depname]
if ok {
if newrs.CheckDirty() {
log.Log(WARN, " IS DIRTY", newrs.String())
if deprs.CheckDirty() {
log.Log(WARN, " IS DIRTY", deprs.String())
return false, ""
}
if newrs.readOnly.String() == "true" {
log.Log(WARN, " SKIPPING Read Only", newrs.String())
if deprs.readOnly.String() == "true" {
log.Log(WARN, " SKIPPING Read Only", deprs.String())
} else {
log.Log(WARN, " FOUND", newrs.String())
username := newrs.userWorkingName.String()
userhash, _ := newrs.gitConfig.hashes[username]
userversion, _ := newrs.gitConfig.versions[userhash]
log.Log(WARN, " FOUND", deprs.String(), deprs.goSumStatus.String())
username := deprs.userWorkingName.String()
userhash, _ := deprs.gitConfig.hashes[username]
userversion, _ := deprs.gitConfig.versions[userhash]
log.Log(WARN, " username :"+username, userhash)
log.Log(WARN, " username :"+username, userversion)
if version == userversion {
log.Log(WARN, " USER VERSIONS MATCH", version, userversion)
if newrs.goSumStatus.String() == "BAD" {
if deprs.goSumStatus.String() == "BAD" {
log.Log(WARN, " USER VERSION IS BAD!! return false")
return false, ""
}