(err error)
| 1186 | } |
| 1187 | |
| 1188 | func ExitOnError(err error) { |
| 1189 | if err == nil { |
| 1190 | return |
| 1191 | } |
| 1192 | |
| 1193 | whisk.Debug(whisk.DbgInfo, "err object type: %s\n", reflect.TypeOf(err).String()) |
| 1194 | |
| 1195 | T := wski18n.T |
| 1196 | var exitCode int = 0 |
| 1197 | var displayUsage bool = false |
| 1198 | var displayMsg bool = false |
| 1199 | var msgDisplayed bool = true |
| 1200 | var displayPrefix bool = true |
| 1201 | |
| 1202 | werr, isWskError := err.(*whisk.WskError) // Is the err a WskError? |
| 1203 | if isWskError { |
| 1204 | whisk.Debug(whisk.DbgError, "Got a *whisk.WskError error: %#v\n", werr) |
| 1205 | displayUsage = werr.DisplayUsage |
| 1206 | displayMsg = werr.DisplayMsg |
| 1207 | msgDisplayed = werr.MsgDisplayed |
| 1208 | displayPrefix = werr.DisplayPrefix |
| 1209 | exitCode = werr.ExitCode |
| 1210 | } else { |
| 1211 | whisk.Debug(whisk.DbgError, "Got some other error: %s\n", err) |
| 1212 | fmt.Fprintf(os.Stderr, "%s\n", err) |
| 1213 | |
| 1214 | displayUsage = false // Cobra already displayed the usage message |
| 1215 | exitCode = 1 |
| 1216 | } |
| 1217 | |
| 1218 | outputStream := colorable.NewColorableStderr() |
| 1219 | |
| 1220 | // If the err msg should be displayed to the console and it has not already been |
| 1221 | // displayed, display it now. |
| 1222 | if displayMsg && !msgDisplayed && displayPrefix && exitCode != 0 { |
| 1223 | fmt.Fprintf(outputStream, "%s%s\n", color.RedString(T("error: ")), err) |
| 1224 | } else if displayMsg && !msgDisplayed && !displayPrefix && exitCode != 0 { |
| 1225 | fmt.Fprintf(outputStream, "%s\n", err) |
| 1226 | } else if displayMsg && !msgDisplayed && exitCode == 0 { |
| 1227 | fmt.Fprintf(outputStream, "%s\n", err) |
| 1228 | } |
| 1229 | |
| 1230 | // Displays usage |
| 1231 | if displayUsage { |
| 1232 | fmt.Fprintf(outputStream, T("Run '{{.Name}} --help' for usage.\n", |
| 1233 | map[string]interface{}{"Name": WskCmd.CommandPath()})) |
| 1234 | } |
| 1235 | |
| 1236 | os.Exit(exitCode) |
| 1237 | } |
no outgoing calls
no test coverage detected