[#665] cli/util: Add exit code utils

Add `errf`, `exitOnErr` and `exitOnErrCode` functions
that works with errors and exits with non-zero exit
codes on non-nil errors.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
Pavel Karpy 2021-07-06 13:25:31 +03:00 committed by Leonard Lyubich
parent 75632a7d83
commit 8965e70463

View file

@ -508,3 +508,28 @@ func keyerParseFile(filename string, d *keyer.Dashboard) error {
return d.ParseBinary(data) return d.ParseBinary(data)
} }
// errf returns formatted error in errFmt format
// if err is not nil.
func errf(errFmt string, err error) error {
if err == nil {
return nil
}
return fmt.Errorf(errFmt, err)
}
// exitOnErr calls exitOnErrCode with code 1.
func exitOnErr(cmd *cobra.Command, err error) {
exitOnErrCode(cmd, err, 1)
}
// exitOnErrCode prints error via cmd and calls
// os.Exit with passed exit code. Does nothing
// if err is nil.
func exitOnErrCode(cmd *cobra.Command, err error, code int) {
if err != nil {
cmd.PrintErrln(err)
os.Exit(code)
}
}