summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorSuleyman Farajli <suleyman@farajli.net>2025-06-17 19:55:20 +0400
committerSuleyman Farajli <suleyman@farajli.net>2025-06-17 19:55:20 +0400
commit8a4659fa081773fed35975267f01f8a7c0acf3a4 (patch)
tree102d56767bd874b0c3f5e30b19fd722a22699650 /scripts
parentc583f7d1c796bd4d82572cb3dd0caa52c8b4ecbf (diff)
scripts: new library for common functions
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/slib42
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
+}