diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 140 |
1 files changed, 17 insertions, 123 deletions
@@ -37,8 +37,14 @@ func main() { all := forge.Repos.SortByGoPath() for all.Scan() { check = all.Next() - if err := doMain(check); err != nil { - badExit(check, err) + if argv.Force { + if err := doForce(check); err != nil { + // badExit(check, err) + } + } else { + if err := doSmart(check); err != nil { + // badExit(check, err) + } } } } else { @@ -49,13 +55,19 @@ func main() { badExit(nil, nil) } - if err := doMain(check); err != nil { - badExit(check, err) + if argv.Force { + if err := doForce(check); err != nil { + badExit(check, err) + } + } else { + if err := doSmart(check); err != nil { + badExit(check, err) + } } } if configSave { - // forge.ConfigSave() + forge.ConfigSave() } log.Info("forge.FinalGoDepsCheck() worked :", check.GoPath) @@ -128,121 +140,3 @@ func restoreFromGoPkg(repo *gitpb.Repo) error { // try go.sum, but no error checking since it might not be there return nil } - -func doMain(repo *gitpb.Repo) error { - var perfect bool = true - if !repo.IsValid() { - log.Info(repo.GoPath, "is invalid. fix your repos.pb file with 'forge' first") - log.Info("") - log.Info("go install go.wit.com/apps/forge@latest") - log.Info("") - return errors.New(repo.GoPath + " is invalid. fix your repository list with 'forge' first") - } - log.Info(repo.GoPath, "is valid according to forge") - - // purge the git meta-data if --force - if argv.Force { - repo.Run([]string{"git", "notes", "remove"}) - } - - if err := repo.RepoIgnoresGoMod(); err != nil { - log.Info("never modify go.mod or go.sum for this repo", repo.GoPath) - log.Info("We recommend you add 'go.*' to your .gitignore file and store those files as git tag metadata") - repo.ParseGoSum() - return nil - } - - // erase the go.mod and go.sum files - eraseGoMod(repo) - - if !argv.Strict { - if err := restoreFromGoPkg(repo); err == nil { - configSave = true - return nil - } - } - - // try to restore from the git metadata - cname := repo.GetCurrentBranchName() - if err := repo.AutogenRestore(cname); err == nil { - log.Info(repo.GoPath, "go.mod and go.sum were restored ok") - if !argv.Strict { - configSave = true - return nil - } - } - - // if they were auto restored, one should exit here - if err := repo.ValidGoSum(); err == nil { - if !argv.Strict { - log.Info(repo.GoPath, "go.mod and go.sum were restored ok") - return nil - } - } - - if repo.GetMasterBranchName() != repo.GetCurrentBranchName() { - perfect = false - if argv.Strict { - log.Info("") - log.Info("You are not operating on your git master branch.") - log.Info("Publishing go.mod & go.sum files must come from from git version tag on the master branch") - log.Info("") - return errors.New(repo.GoPath + " not in the git master branch") - } - } - - if repo.CheckDirty() { - perfect = false - if argv.Strict { - log.Info("") - log.Info("You can not continue on a dirty git repo.") - log.Info("") - return errors.New(repo.GoPath + " git repo is dirty") - } - } - - log.Info(repo.GoPath, "GOING TO MAKE NEW go.* FILES") - - // actually will re-create go.sum and go.mod now - if err := redoGoMod(repo); err != nil { - return err - } - - 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) - return err - } - - // if everything is perfect, save them as git metadata - if perfect { - // put the files in the notes section in git - // this way, git commits are not messed up - // with this autogenerated code - if err := saveAsMetadata(repo); err != nil { - log.Info("save go.mod as git metadata failed", repo.GoPath, err) - return err - } - } - - // everything worked! - configSave = true - return nil -} |
