diff options
Diffstat (limited to 'configfile.go')
| -rw-r--r-- | configfile.go | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/configfile.go b/configfile.go index a65de5c..c6f79ed 100644 --- a/configfile.go +++ b/configfile.go @@ -1,6 +1,7 @@ package repolist import ( + "fmt" "io/ioutil" "os" "path/filepath" @@ -142,22 +143,39 @@ func (rl *RepoList) ArgCheckoutUser() bool { } func (rl *RepoList) ArgGitPull() bool { + var localonly int + var badmap int + log.Log(REPOWARN, "running git pull everywhere") - cmd := []string{"git", "pull"} var failed int = 0 for _, repo := range rl.AllRepos() { - log.Log(REPOWARN, "Running:", repo.Status.Path(), cmd) - err, output := repo.RunCmd(cmd) - if err == nil { - log.Log(REPOWARN, output) + log.Log(REPOWARN, "Running:", repo.Status.Path()) + if err := repo.Status.GitPull(); err == nil { } else { failed += 1 - log.Log(REPOWARN, "Something went wrong. Got err", err) - log.Log(REPOWARN, "output =", output) + repo.Status.DumpTags() + name := repo.Status.GetCurrentBranchName() + if repo.Status.IsOnlyLocalTag(name) { + log.Log(REPOWARN, repo.Status.Path(), "can not git pull on local only branch", name, err) + } else { + log.Log(REPOWARN, repo.Status.Path(), "this branch should have worked", name, err) + } + if fmt.Sprint(err) == "git config error" { + badmap += 1 + continue + } + if fmt.Sprint(err) == "local only" { + localonly += 1 + continue + } return false } } log.Log(REPOWARN, "Ran git pull in all repos. failure count =", failed) + log.Log(REPOWARN, "Ran git pull in all repos. git config map errors =", badmap) + if localonly != 0 { + log.Log(REPOWARN, "Ran git pull in all repos. ignored local only branches =", localonly) + } return true } |
