diff options
Diffstat (limited to 'doStats.go')
| -rw-r--r-- | doStats.go | 41 |
1 files changed, 32 insertions, 9 deletions
@@ -5,6 +5,9 @@ package main import ( "errors" + "fmt" + "os" + "path/filepath" "go.wit.com/lib/env" "go.wit.com/lib/protobuf/gitpb" @@ -22,16 +25,36 @@ import ( func doStats(cmd *StatsCmd) (string, error) { if cmd.All != nil { - fixed := me.forge.RunOnRepos(me.forge.Repos, doReload) - if fixed.Len() == 0 { - return "no git config changes", nil - } + if cmd.Reload { + fixed := me.forge.RunOnRepos(me.forge.Repos, doReload) + if fixed.Len() == 0 { + return "no git config changes", nil + } - // show the changed repos & save cache .pb file - fixed = fixed.SortActual() - footer := me.forge.PrintErrorsTB(fixed) - me.forge.Repos.SaveVerbose() - return ".git/config problems: " + footer, nil + // show the changed repos & save cache .pb file + fixed = fixed.SortActual() + footer := me.forge.PrintErrorsTB(fixed) + me.forge.Repos.SaveVerbose() + return ".git/config problems: " + footer, nil + } + if cmd.ReloadClean { + var counter int + for repo := range me.forge.Repos.IterAll() { + os.Chdir(repo.FullPath) + globPattern := ".git/*.pb" + files, err := filepath.Glob(globPattern) + if err != nil { + log.Info("glob error", err, files) + continue + } + for _, filename := range files { + log.Info("DELETE", filename) + counter += 1 + os.Remove(filename) + } + } + return fmt.Sprintf("cleaned %d pb files", counter), nil + } } repo := workingDirToRepo() |
