package main import ( "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) // this will make go.mod and go.sum files, but you have to // have the files in .gitignore for now func doSmart(repo *gitpb.Repo) error { // if the repo has go.mod in the repo... if err := repo.RepoIgnoresGoMod(); err != nil { if repo.ParseGoSum() { return nil } log.Info("go-mod-clean can not run on this repo", repo.GetGoPath()) log.Info("go.mod and go.sum must be git metadata to continue") // return nil if repo.Exists("go.sum") { return nil } } // erase the go.mod and go.sum files eraseGoMod(repo) // try to restore from the git metadata cname := repo.GetCurrentBranchName() if err := repo.AutogenRestore(cname); err == nil { log.Info(repo.GetGoPath(), "files were restored ok from git metadata (notes)") if repo.Exists("go.mod") { return nil } // autogen restore didn't find go.mod } // actually will re-create go.sum and go.mod now if err := redoGoMod(repo); err != nil { return err } log.Info(repo.GetGoPath(), "the files were restored with redoGoMod()") /* if repo.Exists("go.mod") { return nil } */ // the first time, it'll attempt to fix some stuff if err := cleanGoDepsCheckOk(repo); err != nil { return err } // trim junk that might have been added by cleanGoDepsCheckOk() if err := trimGoSum(repo); err != nil { return err } return nil }