summaryrefslogtreecommitdiff
path: root/doClean.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-16 05:12:52 -0500
committerJeff Carr <[email protected]>2025-10-16 05:12:52 -0500
commitee7604bc3dcd455196f84a621c88410226e3ef59 (patch)
tree8c74269f2ee2c38b82cc338646e7f40e9bbdbcc7 /doClean.go
parent823199b877a0233d4fd50247d7e5e7d40acce0b6 (diff)
cleanup clean
Diffstat (limited to 'doClean.go')
-rw-r--r--doClean.go44
1 files changed, 20 insertions, 24 deletions
diff --git a/doClean.go b/doClean.go
index 9aae91a..f8ba04e 100644
--- a/doClean.go
+++ b/doClean.go
@@ -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 {