diff --git a/cleanGoSum.go b/cleanGoSum.go index 76e5037..d452e47 100644 --- a/cleanGoSum.go +++ b/cleanGoSum.go @@ -18,6 +18,7 @@ import ( // matches the go.sum file func cleanGoDepsCheckOk(check *gitpb.Repo) error { var err error = nil + var fixes [][]string log.Printf("current repo %s go dependancy count: %d", check.GetGoPath(), check.GoDepsLen()) all := check.GoDeps.SortByGoPath() for all.Scan() { @@ -60,11 +61,17 @@ func cleanGoDepsCheckOk(check *gitpb.Repo) error { depRepo.GetVersion(), found.GetMasterVersion(), ends) errs := fmt.Sprintf("%s error %s vs %s %s", depRepo.GetGoPath(), depRepo.GetVersion(), found.GetMasterVersion(), ends) + cmd := []string{"go", "get", depRepo.GetGoPath() + "@" + found.GetMasterVersion()} + fixes = append(fixes, cmd) err = errors.New(errs) } } } } + for i, cmd := range fixes { + log.Info("try cmd", i, cmd) + check.RunRealtime(cmd) + } return err } diff --git a/main.go b/main.go index 6861e0e..bac1afb 100644 --- a/main.go +++ b/main.go @@ -168,12 +168,22 @@ func doMain(repo *gitpb.Repo) error { } if argv.Trim { + // the first time, it'll attempt to fix some stuff + cleanGoDepsCheckOk(repo) // try to trim junk if err := trimGoSum(repo); err != nil { return err } + repo.ParseGoSum() } + /* + data, _ := repo.ReadFile("go.mod") + log.Info(string(data)) + data, _ = repo.ReadFile("go.sum") + log.Info(string(data)) + */ + // check go.sum file if err := cleanGoDepsCheckOk(repo); err != nil { log.Info("forge.FinalGoDepsCheck() failed. boo. :", repo.GoPath)