X-Git-Url: https://arthur.barton.de/gitweb/?p=ax-unix.git;a=blobdiff_plain;f=lib%2Fax%2Fax-common.sh;h=a5b4efdc57a95456b7cafc17b7c22ad60e8ccf7f;hp=fbeb5793c05df9f8ab7706b32f2a570c85cd6f60;hb=1adc20abe3c432bd2ddf0bec86c4d4505d620d19;hpb=872a56621f667413edf69afdd360e5046917b31f diff --git a/lib/ax/ax-common.sh b/lib/ax/ax-common.sh index fbeb579..a5b4efd 100644 --- a/lib/ax/ax-common.sh +++ b/lib/ax/ax-common.sh @@ -1,6 +1,7 @@ +#!/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 @@ -8,7 +9,10 @@ # (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. @@ -23,9 +27,7 @@ ax_msg1() { *) 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 "${*}" @@ -40,12 +42,41 @@ ax_msg() { 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:" "$*" +}