diff options
Diffstat (limited to 'doStats.go')
| -rw-r--r-- | doStats.go | 44 |
1 files changed, 43 insertions, 1 deletions
@@ -25,6 +25,26 @@ func doStats(cmd *StatsCmd) (string, error) { if repo == nil { return "no repo", errors.New("working dir isn't a repo I know about") } + if cmd.Repo != "" { + r := me.forge.Repos.FindByNamespace(cmd.Repo) + if r == nil { + return "no repo " + cmd.Repo, errors.New("no repo " + cmd.Repo) + } + for _, rmote := range r.Config.Remotes { + stats, err := r.LoadRemoteRefs(rmote.Name) + if err != nil { + // return err + } + if env.True("resort") { + stats.SaveByHash() + log.Info("stats should have been resorted and saved") + } else { + footer := stats.PrintTable() + log.Info("full remote refs footer:", footer) + } + } + return "remote refs table", nil + } if cmd.CheckRefs { err := doCheckRefs(repo) @@ -32,6 +52,11 @@ func doStats(cmd *StatsCmd) (string, error) { } if cmd.CheckRemote { + err := doCheckRemote(repo) + return "checked remote refs", err + } + + if cmd.CheckRemoteRefs { err := doCheckRemoteRefs(repo) return "checked remote refs", err } @@ -41,7 +66,7 @@ func doStats(cmd *StatsCmd) (string, error) { return "update refs", err } - if cmd.UpdateRemote { + if cmd.UpdateRemoteRefs { err := doUpdateRemoteRefs(repo) return "update remote refs", err } @@ -94,6 +119,23 @@ func doUpdateRefs(r *gitpb.Repo) error { return err } +func doCheckRemote(r *gitpb.Repo) error { + for _, rmote := range r.Config.Remotes { + morestats, err := r.MakeRemote(rmote.Name) + if err != nil { + // return err + } + if env.True("resort") { + morestats.SaveByHash() + return errors.New("stats should have been resorted and saved") + } + footer := morestats.PrintTable() + log.Printf("full %s remote refs footer: %s\n", rmote.Name, footer) + } + + return nil +} + func doCheckRemoteRefs(r *gitpb.Repo) error { for _, rmote := range r.Config.Remotes { morestats, err := r.MakeRemoteRefs(rmote.Name) |
