+#!/bin/sh
#
# ax-common.sh -- Common Functions for Shell Scripts
-# Copyright (c)2013-2015 Alexander Barton (alex@barton.de)
+# Copyright (c)2013-2017 Alexander Barton (alex@barton.de)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# (at your option) any later version.
#
-ax_common_sourced=1
+# "ax_common_sourced" is a flag and stores the "API version" of "ax-common.sh",
+# too. It should be incremented each time the public API changes!
+# shellcheck disable=SC2034
+ax_common_sourced=2
# Display a colored message.
# $1 Level: -=title, 0=ok, 1=warning, 2=error.
*) c="0";
esac
# print colored word(s):
- printf "\033[0;${c}m"
- /bin/echo -n "${1}"
- printf "\033[0m "
+ printf "\033[0;%sm%s\033[0m " "${c}" "${1}"
shift
# print remaining word(s) and trailing newline:
echo "${*}"
ax_msg1 "$level" "$*"
}
+# Display an error message to stderr.
+# [-l] Log message to syslog, too.
+# $1-n Error message.
+ax_error() {
+ if [ "$1" = "-l" ]; then
+ shift
+ if [ -n "$NAME" ]; then
+ logger -t "$NAME" "$*"
+ else
+ logger "$*"
+ fi
+ fi
+ ax_msg1 2 "$*" >&2
+}
+
# Abort the script with an error message and exit code 1.
-# $1 Error message [optional]. Will be formatted as "Error: %s Aborting!".
-# if no error message is given, "Aborting!" will be printed.
+# [-l] Log message to syslog, too.
+# $1 Error message [optional]. Will be formatted as "Error: %s Aborting!".
+# if no error message is given, "Aborting!" will be printed.
ax_abort() {
- [ $# -gt 0 ] \
- && ax_msg 2 "Error: $* Aborting!" \
- || ax_msg 2 "Aborting!"
+ if [ "$1" = "-l" ]; then
+ log_param="-l"
+ else
+ unset log_param
+ fi
+ if [ $# -gt 0 ]; then
+ ax_error $log_param "Error: $* Aborting!"
+ else
+ ax_error $log_param "Aborting!"
+ fi
exit 1
}
+
+# Display a debug message, when debug mode is enabled, that is, the environment
+# variable "DEBUG" is set.
+ax_debug() {
+ [ -n "$DEBUG" ] && ax_msg1 1 "DEBUG:" "$*"
+}