summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-11-05 16:10:31 -0600
committerJeff Carr <[email protected]>2025-11-05 16:10:31 -0600
commitb4d90fae8dd9967d2f5d8e6b62f29c9b1bafe6a1 (patch)
tree27335f202eeea1e7b2678c9fdcdb6aa7b65c5f5c
parent99f1b719cdee67353d12499308fca117cafd05f3 (diff)
moved to new stat.protov0.25.111v0.25.110
-rw-r--r--argv.go1
-rw-r--r--doStats.go41
-rw-r--r--main.go7
3 files changed, 40 insertions, 9 deletions
diff --git a/argv.go b/argv.go
index a2e80ea..4183238 100644
--- a/argv.go
+++ b/argv.go
@@ -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"`
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()
diff --git a/main.go b/main.go
index 790a374..cc3d81b 100644
--- a/main.go
+++ b/main.go
@@ -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
}