package gitpb // does processing on the go.mod and go.sum files import ( "go.wit.com/log" ) func (repo *Repo) setRepoState() { if repo == nil { return } if repo.IsDirty() { repo.State = "dirty" return } if repo.GetUserVersion() == "uerr" { // user has not made user branches } else { if repo.GetUserVersion() != repo.GetDevelVersion() { repo.State = "merge to devel" return } } if repo.GetDevelVersion() != repo.GetMasterVersion() { if !repo.IsLocalBranch(repo.GetDevelBranchName()) { // the remote devel branch exists but is not checked out repo.State = "no devel branch" return } b1 := repo.CountDiffObjects(repo.GetMasterBranchName(), repo.GetDevelBranchName()) if b1 == 0 { repo.State = "merge to main" // log.Info("master vs devel count is normal b1 == 0", b1) } else { repo.State = "DEVEL < MASTER" // log.Info("master vs devel count b1 != 0", b1) log.Info("SERIOUS ERROR. DEVEL BRANCH NEEDS MERGE FROM MASTER b1 ==", b1, repo.GetGoPath()) } return } // if IsGoTagVersionGreater(oldtag string, newtag string) bool { if !IsGoTagVersionGreater(repo.GetLastTag(), repo.GetMasterVersion()) { repo.State = "last tag greater error" return } if repo.GetLastTag() != repo.GetMasterVersion() { repo.State = "ready to release" return } if repo.CheckBranches() { repo.State = "PERFECT" return } log.Info("Branches are not Perfect", repo.GetFullPath()) log.Info("Branches are not Perfect", repo.GetFullPath()) log.Info("Branches are not Perfect", repo.GetFullPath()) repo.State = "unknown branches" } // returns true if old="v0.2.4" and new="v0.3.3" // returns true if equal // todo: make all of this smarter someday func IsGoTagVersionGreater(oldtag string, newtag string) bool { olda, oldb, oldc := splitInts(oldtag) newa, newb, newc := splitInts(newtag) if newa < olda { return false } if newb < oldb { return false } if newc < oldc { return false } return true } // returns true for "v0.2.4" and false for "v0.2.43-asdfj" // actually returns false for anything not perfectly versioned func IsGoTagPublished(oldtag string, newtag string) bool { // todo return true }