diff options
Diffstat (limited to 'scripts/slib')
-rwxr-xr-x | scripts/slib | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/slib b/scripts/slib new file mode 100755 index 0000000..8eba48b --- /dev/null +++ b/scripts/slib @@ -0,0 +1,42 @@ +#!/bin/sh + +err() { + [ "${1}" != "-x" ] && printf "${0}: " || shift + + for line in "${@}"; do + echo "${line}" >&2 + done + exit 1 +} + +invalid_use() { + [ "${1}" == "-h" ] && err -x "Try '${0} -h' for help." + err "Invalid usage" "Try '$0 -h' for help." +} + +check_program() { + command -v "${1}" > /dev/null 2>&1 && return 0 + [ -n "${2}" ] && err "${2}" + err "${1} must be installed" +} + +run() { + relstat=0 + if [ "${1}" = "--reload-status" ];then + relstat=1 + shift + fi + + if ${1}; then + [ -n "${2}" ] && echo "${2}" + else + [ -n "${3}" ] && err "${3}" + exit 1 + fi + + if [ "${relstat}" -eq 1 ]; then + slreload || echo "Warning: Failed to reload slstatus" >&2 + fi + + exit 0 +} |