diff options
| author | Jeff Carr <[email protected]> | 2025-10-16 05:12:52 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-16 05:12:52 -0500 |
| commit | ee7604bc3dcd455196f84a621c88410226e3ef59 (patch) | |
| tree | 8c74269f2ee2c38b82cc338646e7f40e9bbdbcc7 /doClean.go | |
| parent | 823199b877a0233d4fd50247d7e5e7d40acce0b6 (diff) | |
cleanup clean
Diffstat (limited to 'doClean.go')
| -rw-r--r-- | doClean.go | 44 |
1 files changed, 20 insertions, 24 deletions
@@ -51,17 +51,21 @@ func doResetRepo(repo *gitpb.Repo) error { // reverts all repos back to the original master branches // automatically deletes local devel and user branches -func doClean() error { +func doClean() (string, error) { if argv.Clean.Repo != "" { setForgeMode(forgepb.ForgeMode_CLEAN) - log.Info("only reset repo:", argv.Clean.Repo) + s := log.Sprintf("only reset repo: %s", argv.Clean.Repo) if found := me.forge.Repos.FindByNamespace(argv.Clean.Repo); found != nil { - return doResetRepo(found) + return s, doResetRepo(found) } if found := me.forge.Repos.FindByFullPath(argv.Clean.Repo); found != nil { - return doResetRepo(found) + return s, doResetRepo(found) } - return log.Errorf("repo not found: %s", argv.Clean.Repo) + return "cleaned working dir", log.Errorf("repo not found: %s", argv.Clean.Repo) + } + if argv.Clean.List != nil { + s, err := doCleanList() + return s, err } if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL { @@ -85,13 +89,16 @@ func doClean() error { doResetRepo(repo) } + me.forge.Repos.Save() + return "all repos should be clean", nil +} + +func doCleanList() (string, error) { found := gitpb.NewRepos() total := 0 // find all repos that aren't "clean" - all = me.forge.Repos.SortByFullPath() - for all.Scan() { - repo := all.Next() + for repo := range me.forge.Repos.IterByFullPath() { total += 1 // find repos not on master branch @@ -119,24 +126,13 @@ func doClean() error { } } - // display all the repos that aren't clean to the user - log.Printf("\n") // padding for now - if argv.Verbose { - me.forge.PrintHumanTableDirty(found) + var s string + if found.Len() == 0 { + s = log.Sprintf("%d repos are not clean", found.Len()) } else { - me.forge.PrintHumanTable(found) + s = log.Sprintf("All %d repos are clean", me.forge.Repos.Len()) } - log.Printf("\n") // padding for now - - me.forge.Repos.Save() - var hmm int - hmm = found.Len() - if hmm == 0 { - log.Printf("%d repos are not clean\n", hmm) - } else { - log.Info("All repos are clean", total, hmm) - } - return nil + return s, nil } func doRepoCleanDevel(repo *gitpb.Repo) error { |
