summaryrefslogtreecommitdiff
path: root/doStats.go
diff options
context:
space:
mode:
Diffstat (limited to 'doStats.go')
-rw-r--r--doStats.go41
1 files changed, 32 insertions, 9 deletions
diff --git a/doStats.go b/doStats.go
index e932fc1..d875880 100644
--- a/doStats.go
+++ b/doStats.go
@@ -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()