diff options
Diffstat (limited to 'doClean.go')
| -rw-r--r-- | doClean.go | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -7,18 +7,31 @@ import ( "go.wit.com/log" ) +var ErrorReposHasLocalBranches error = fmt.Errorf("repo still has local branches") + func doClean() error { + if err := IsEverythingOnMaster(); err != nil { + log.Info("Not all repos are on the master branch") + // return err + } + all := me.forge.Repos.SortByFullPath() for all.Scan() { repo := all.Next() + if repo.GetCurrentBranchName() != repo.GetMasterBranchName() { + continue + } if err := doCleanRepo(repo); err != nil { - badExit(err) + badRepoExit(repo, err) } } + log.Info("All repos on the master branch are clean") return nil } +// removes all local branches func doCleanRepo(repo *gitpb.Repo) error { + var hasLocal bool log.Info("Cleaning:", repo.GetGoPath()) if repo.GitConfig == nil { return fmt.Errorf("GitConfig == nil") @@ -30,6 +43,17 @@ func doCleanRepo(repo *gitpb.Repo) error { for name, b := range repo.GitConfig.Branches { log.Info("\tlocal branch name:", name, b.Merge, b.Remote) + if name == repo.GetMasterBranchName() { + continue + } + hasLocal = true } + if hasLocal { + return ErrorReposHasLocalBranches + } + return nil +} + +func verifyLocalBranchIsMerged(repo *gitpb.Repo, branch *gitpb.GitBranch) error { return nil } |
