Don't fail status when indivisual projects fail
Change-Id: Ic3dd266cc724f06b997a6a1aff9c17e6b98c830f
diff --git a/cmd/jiri/status.go b/cmd/jiri/status.go
index 0fc5c2c..71f0308 100644
--- a/cmd/jiri/status.go
+++ b/cmd/jiri/status.go
@@ -89,15 +89,24 @@
if statusFlags.branch != "" && (statusFlags.branch != state.CurrentBranch.Name) {
continue
}
+ relativePath, err := filepath.Rel(cDir, localProject.Path)
+ if err != nil {
+ return err
+ }
+ errorMsg := fmt.Sprintf("getting status for project %s(%s)", localProject.Name, relativePath)
changes, headRev, extraCommits, err := getStatus(jirix, localProject, remoteProject, state.CurrentBranch)
if err != nil {
- return fmt.Errorf("Error while getting status for project %q :%s", localProject.Name, err)
+ jirix.Logger.Errorf("%s :%s\n\n", errorMsg, err)
+ jirix.IncrementFailures()
+ continue
}
revisionMessage := ""
git := gitutil.New(jirix, gitutil.RootDirOpt(state.Project.Path))
currentLog, err := git.OneLineLog(state.CurrentBranch.Revision)
if err != nil {
- return fmt.Errorf("Error while getting status for project %q :%s", localProject.Name, err)
+ jirix.Logger.Errorf("%s :%s\n\n", errorMsg, err)
+ jirix.IncrementFailures()
+ continue
}
currentLog = colorFormatGitLog(jirix, currentLog)
if statusFlags.checkHead {
@@ -106,7 +115,9 @@
} else if headRev != state.CurrentBranch.Revision {
headLog, err := git.OneLineLog(headRev)
if err != nil {
- return fmt.Errorf("Error while getting status for project %q :%s", localProject.Name, err)
+ jirix.Logger.Errorf("%s :%s\n\n", errorMsg, err)
+ jirix.IncrementFailures()
+ continue
}
headLog = colorFormatGitLog(jirix, headLog)
revisionMessage = fmt.Sprintf("\n%s: %s", jirix.Color.Yellow("JIRI_HEAD"), headLog)
@@ -115,10 +126,6 @@
}
if statusFlags.branch != "" || changes != "" || revisionMessage != "" ||
len(extraCommits) != 0 {
- relativePath, err := filepath.Rel(cDir, localProject.Path)
- if err != nil {
- return err
- }
fmt.Printf("%s: %s", jirix.Color.Yellow(relativePath), revisionMessage)
fmt.Println()
branch := state.CurrentBranch.Name
@@ -142,6 +149,9 @@
}
}
+ if jirix.Failures() != 0 {
+ return fmt.Errorf("completed with non-fatal errors")
+ }
return nil
}