summaryrefslogtreecommitdiff
path: root/include/lib.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/lib.sh')
-rw-r--r--include/lib.sh25
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
}