diff options
Diffstat (limited to 'include/lib.sh')
-rw-r--r-- | include/lib.sh | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/include/lib.sh b/include/lib.sh index eb4cddca..71183874 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -169,6 +169,7 @@ find_ex() x_() { + [ $# -lt 1 ] && printf "WARNING: x_ called without arguments\n" 1>&2 [ $# -lt 1 ] || [ -n "$1" ] || err "Empty first arg: x_ $(echo "$@")" [ $# -lt 1 ] || "$@" || err "Unhandled error for: $(echo "$@")"; : } @@ -176,32 +177,26 @@ x_() err() { xbmk_err_val=0 + real_err="" && [ -n "${xbmk_err+x}" ] && real_err="$xbmk_err" - real_err="$xbmk_err" - if [ -z "$xbmk_err" ]; then - printf "WARNING: err not set. Args: %s\n" "$(echo "$@")" 1>&2 - printf "REMARK: Setting err to default 'err_' value\n" 1>&2 + if [ -z "$real_err" ]; then + printf "WARNING: err not set. Defaulting to 'err_'\n" 1>&2 real_err="err_" fi ( - $real_err "$@" || printf \ - "WARNING: Err function '%s' *returned* 1. Will exit 1 anyway\n" \ - "$real_err" - printf "WARNING: Err function '%s' didn't exit. Will exit 1 anyway\n" \ - "$real_err" 1>&2 - exit 1 + $real_err "$@" || err_ "Error function '$real_err' *returned* 1" + err_ "Error function '$real_err' didn't exit" + exit 1 # just in case! ) || xbmk_err_val=1 # otherwise, it wrongly did exit 0, not exit 1 - [ $xbmk_err_val -eq 0 ] && printf \ - "WARNING: Err function '%s' did exit 0. Will exit 1 anyway.\n" \ - "$real_err" 1>&2 - - exit 1 + [ $xbmk_err_val -eq 0 ] && err_ "Error function '$real_err' did exit 0" + exit 1 # just in case! } err_() { + [ $# -lt 1 ] && printf "ERROR (but no error message provided)\n" 1>&2 [ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || : exit 1 } |