diff options
| author | Jeff Carr <[email protected]> | 2024-01-29 09:31:22 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-29 09:31:22 -0600 |
| commit | 408a400e93acb1087079e19b9d5b9afac95cfa29 (patch) | |
| tree | 89743abd0b76192a55a7cb5374737a6747f03e6a /deps.go | |
| parent | 856b479edbf2abbd2d377443d591f33e9f557eb8 (diff) | |
testing gov0.16.0
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'deps.go')
| -rw-r--r-- | deps.go | 58 |
1 files changed, 58 insertions, 0 deletions
@@ -0,0 +1,58 @@ +package repostatus + +import ( + "bufio" + "os" + "path/filepath" + "strings" + + "go.wit.com/log" +) + +func (rs *RepoStatus) GetGoDeps() GoConfig { + tmp := filepath.Join(rs.realPath.String(), "go.sum") + gosum, err := os.Open(tmp) + if err != nil { + log.Log(WARN, "\tmissing go.sum", rs.realPath.String()) + return nil + } + defer gosum.Close() + + var deps GoConfig + deps = make(GoConfig) + + scanner := bufio.NewScanner(gosum) + log.Info("\tgosum:", 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.Info("\tREPO:", rs.String(), rs.realPath.String()) + log.Info("\t version mismatch:", godep, version, currentversion) + return nil + } + } else { + deps[godep] = version + log.Info("\t", godep, "=", version) + } + } else { + log.Info("\t INVALID:", parts) + return nil + } + } + + if err := scanner.Err(); err != nil { + return nil + } + + return deps +} |
