MCPcopy Create free account
hub / github.com/apache/openwhisk-cli / ExitOnError

Function ExitOnError

commands/util.go:1188–1237  ·  view source on GitHub ↗
(err error)

Source from the content-addressed store, hash-verified

1186}
1187
1188func 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}

Callers 4

mainFunction · 0.92
feedParametersFunction · 0.85
createOrUpdateFunction · 0.85
getParametersFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected