diff options
| author | Jeff Carr <[email protected]> | 2024-02-14 02:35:47 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-02-14 02:35:47 -0600 |
| commit | 73d711ad2b2ebb311fadf9ab3739589df890993a (patch) | |
| tree | 1febfc8449a863920b536e79d7e33e1d35d8150a /gitConfig.go | |
| parent | d7e391fed0843aa56ead128737c2770704846bac (diff) | |
trying to improve older code
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'gitConfig.go')
| -rw-r--r-- | gitConfig.go | 282 |
1 files changed, 6 insertions, 276 deletions
diff --git a/gitConfig.go b/gitConfig.go index 881d330..cdafd47 100644 --- a/gitConfig.go +++ b/gitConfig.go @@ -203,37 +203,6 @@ func (rs *RepoStatus) GitURL() string { return "" } -// this checks to see if the repo is truly not dependent on _anything_ else -// like spew or lib/widget -func (rs *RepoStatus) CheckPrimativeGoMod() bool { - log.Log(WARN, "CheckPrimativeGoMod()", rs.realPath.String()) - tmp := filepath.Join(rs.realPath.String(), "go.mod") - gomod, err := os.Open(tmp) - if err != nil { - log.Log(WARN, "missing go.mod", rs.realPath.String()) - rs.goConfig = nil - return false - } - defer gomod.Close() - - scanner := bufio.NewScanner(gomod) - for scanner.Scan() { - line := strings.TrimSpace(scanner.Text()) - - parts := strings.Split(line, " ") - log.Log(INFO, " gomod:", parts) - if len(parts) >= 1 { - log.Log(INFO, " gomod: part[0] =", parts[0]) - if parts[0] == "require" { - log.Log(INFO, " should return false here") - return false - } - - } - } - return true -} - func (rs *RepoStatus) GitLsFiles() (bool, string) { err, output := rs.RunCmd([]string{"git", "ls-files"}) if err != nil { @@ -244,61 +213,6 @@ func (rs *RepoStatus) GitLsFiles() (bool, string) { return true, output } -// readGoMod reads and parses the go.sum file (TODO: do the go.mod file) -func (rs *RepoStatus) ReadGoMod() bool { - if rs.CheckPrimativeGoMod() { - log.Info("PRIMATIVE repo:", rs.String()) - return true - } - - tmp := filepath.Join(rs.realPath.String(), "go.sum") - gosum, err := os.Open(tmp) - if err != nil { - log.Log(WARN, "missing go.sum", rs.realPath.String()) - rs.goConfig = nil - return false - } - defer gosum.Close() - - var deps GoConfig - deps = make(GoConfig) - - scanner := bufio.NewScanner(gosum) - log.Log(INFO, "gosum:", tmp) - for scanner.Scan() { - line := strings.TrimSpace(scanner.Text()) - - parts := strings.Split(line, " ") - if len(parts) == 3 { - godep := strings.TrimSpace(parts[0]) - version := strings.TrimSpace(parts[1]) - if strings.HasSuffix(version, "/go.mod") { - version = strings.TrimSuffix(version, "/go.mod") - } - currentversion, ok := deps[godep] - if ok { - if currentversion != version { - log.Log(WARN, "REPO:", rs.String(), rs.realPath.String()) - log.Log(WARN, " version mismatch:", godep, version, currentversion) - } - } else { - deps[godep] = version - log.Log(INFO, "\t", godep, "=", version) - } - } else { - log.Log(WARN, "\t INVALID:", parts) - } - } - - if err := scanner.Err(); err != nil { - rs.goConfig = nil - return false - } - - rs.goConfig = deps - return true -} - func ScanGoSrc() { log.Log(WARN, "Scanning all go.sum files") for path, rs := range windowMap { @@ -336,190 +250,6 @@ func (rs *RepoStatus) ScanGoSrc() { } } -// check if it is safe to remake the go.sum & go.mod files -func (rs *RepoStatus) CheckSafeGoSumRemake() (bool, []string) { - myGoSumS := rs.goSumStatus.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.mainWorkingName.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, goSumS) - clean = append(clean, deprs.String()) - } else { - os.Unsetenv("GO111MODULE") - log.Log(WARN, " USER VERSIONS MISMATCH", version, userversion, myGoSumS) - log.Log(WARN, " IGNORE UNCHANGED REPO. RUNNING 'go get'", depname, userversion) - err, output := rs.RunCmd([]string{"go", "get", depname + "@" + userversion}) - log.Log(WARN, " go get", depname, err, output) - /* - switch goSumS { - case "SAFE": - log.Log(WARN, " USER VERSIONS MISMATCH", version, userversion) - log.Log(WARN, " IGNORE SAFE REPO") - err, output := rs.RunCmd([]string{"go", "get", depname + "@" + userversion}) - log.Log(WARN, " go get", depname, err, output) - 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") - err, output := rs.RunCmd([]string{"go", "get", depname + "@" + userversion}) - log.Log(WARN, " go get", depname, err, output) - default: - log.Log(WARN, " USER VERSIONS MISMATCH default", version, userversion) - clean = append(clean, deprs.String()) - if myGoSumS == "UNCHANGED" { - } - } - */ - } - } - } 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()) - } else { - log.Log(WARN, "Something went wrong parsing go.mod", rs.realPath.String()) - return false, "" - } - log.Log(WARN, "go.sum:", rs.realPath.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()) - return false, "" - } - if deprs.readOnly.String() == "true" { - log.Log(WARN, " SKIPPING Read Only", deprs.String()) - } else { - log.Log(WARN, " FOUND", deprs.String(), deprs.goSumStatus.String()) - username := deprs.mainWorkingName.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") - return false, "" - } - } else { - log.Log(WARN, " USER VERSIONS MISMATCH", version, userversion) - return false, "" - } - } - } else { - log.Log(WARN, " NOT FOUND", depname) - if strings.HasSuffix(depname, "/v2") { - log.Log(WARN, " FOUND /v2 wierd golang stuff. instead, look for:", 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, depname - } - log.Log(WARN, " NOT FOUND BUT IGNORING FOR NOW") - } - } - err, output := rs.RunCmd([]string{"git", "branch", "--remotes"}) - if err == nil { - lines := strings.Split(output, "\n") - for i, s := range lines { - log.Log(WARN, "add line", i, s) - } - } else { - log.Log(WARN, "git branch --remotes failed", err) - } - return true, "" -} - -func (rs *RepoStatus) MakeRedomod() bool { - var err error - var b bool - var output string - var worked bool = true - if rs.ReadOnly() { - log.Log(WARN, "will not go mod redo read only repos", rs.String()) - return false - } - - os.Unsetenv("GO111MODULE") - path := rs.realPath.String() - err, b, output = RunCmd(path, []string{"rm", "-f", "go.mod", "go.sum"}) - if err != nil { - worked = false - log.Log(WARN, "rm failed", err, b, output) - } - err, b, output = RunCmd(path, []string{"go", "mod", "init"}) - if err != nil { - worked = false - log.Log(WARN, "go mod init failed", err, b, output) - } - err, b, output = RunCmd(path, []string{"go", "mod", "tidy"}) - if err != nil { - worked = false - log.Log(WARN, "go mod tidy failed", err, b, output) - } - if worked { - log.Log(WARN, "MakeRedomod() worked", path) - } else { - log.Log(WARN, "MakeRedomod() failed", path) - } - return worked -} - func (rs *RepoStatus) ReadOnly() bool { if rs.readOnly.String() == "true" { return true @@ -530,20 +260,20 @@ func (rs *RepoStatus) ReadOnly() bool { func (rs *RepoStatus) processBranch(branch string) { fullpath := rs.realPath.String() - log.Log(WARN, " ", branch) + log.Log(INFO, " ", branch) hash, ok := rs.gitConfig.hashes[branch] filename := fullpath + "/.git/refs/heads/" + branch - log.Log(WARN, " hash: need to open", filename) + log.Log(INFO, " hash: need to open", filename) newhash, err := readFileToString(filename) if err != nil { - log.Log(WARN, " hash: read failed", filename) + log.Log(WARN, "hash: read failed", filename, rs.String()) return } - log.Log(WARN, " hash:", newhash) + log.Log(INFO, " hash:", newhash) rs.gitConfig.hashes[branch] = newhash if ok { if hash != newhash { - log.Log(WARN, " hash changed!!!!!!!!!", hash) + log.Log(WARN, "hash changed", hash, rs.String()) } } @@ -552,5 +282,5 @@ func (rs *RepoStatus) processBranch(branch string) { _, _, output := RunCmd(rs.realPath.String(), cmd) output = strings.TrimSpace(output) rs.gitConfig.versions[newhash] = output - log.Log(WARN, " hash: version", output) + log.Log(INFO, " hash: version", output) } |
