refactor: use LogFailWithError to allow a unified exit code for golang commands when the app is missing

This commit is contained in:
Jose Diaz-Gonzalez
2021-02-03 15:20:46 -05:00
parent d09a7506df
commit d55e34a55f
28 changed files with 52 additions and 29 deletions

View File

@@ -8,6 +8,11 @@ import (
"strings"
)
// ErrWithExitCode wraps error and exposes an ExitCode method
type ErrWithExitCode interface {
ExitCode() int
}
// LogFail is the failure log formatter
// prints text to stderr and exits with status 1
func LogFail(text string) {
@@ -15,6 +20,16 @@ func LogFail(text string) {
os.Exit(1)
}
// LogFailWithError is the failure log formatter
// prints text to stderr and exits with the specified exit code
func LogFailWithError(err error) {
fmt.Fprintln(os.Stderr, fmt.Sprintf(" ! %s", err.Error()))
if errExit, ok := err.(ErrWithExitCode); ok {
os.Exit(errExit.ExitCode())
}
os.Exit(1)
}
// LogFailQuiet is the failure log formatter (with quiet option)
// prints text to stderr and exits with status 1
func LogFailQuiet(text string) {