diff options
| author | Jeff Carr <[email protected]> | 2025-11-05 16:10:31 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-11-05 16:10:31 -0600 |
| commit | b4d90fae8dd9967d2f5d8e6b62f29c9b1bafe6a1 (patch) | |
| tree | 27335f202eeea1e7b2678c9fdcdb6aa7b65c5f5c | |
| parent | 99f1b719cdee67353d12499308fca117cafd05f3 (diff) | |
| -rw-r--r-- | argv.go | 1 | ||||
| -rw-r--r-- | doStats.go | 41 | ||||
| -rw-r--r-- | main.go | 7 |
3 files changed, 40 insertions, 9 deletions
@@ -67,6 +67,7 @@ type VerifyCmd struct { type StatsCmd struct { All *EmptyCmd `arg:"subcommand:all" help:"run on all the repos"` Reload bool `arg:"--reload" help:"reload refs"` + ReloadClean bool `arg:"--reload-clean" help:"clean out all .git/ .pb files"` CheckRefs bool `arg:"--check-refs" help:"load & check refs"` CheckRemote bool `arg:"--check-remote" help:"load & check remote log"` CheckRemoteRefs bool `arg:"--check-remote-refs" help:"load & check remote refs"` @@ -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() @@ -80,6 +80,13 @@ func setStats(repo *gitpb.Repo) error { } } repo.UserStat = ref + if repo.Tags.Len() != stats.Len() { + log.Printf("tags Tags.len(%d) vs stats.Len(%d)\n", repo.Tags.Len(), stats.Len()) + repo.Tags = stats + err = errors.New("adding stats to repo.Tags") + } else { + // log.Printf("tags already here with len(%d)\n", repo.Tags.Len()) + } return err } |
