summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--spawn.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/spawn.sh b/spawn.sh
new file mode 100644
index 0000000..052a7fd
--- /dev/null
+++ b/spawn.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+set -eu
+
+die() {
+	echo "${0}:" "$@" >&2
+	exit 1
+}
+
+: ${SPAWND_PIPE:=/var/run/spawnd.pipe}
+
+while getopts 'c:' opt; do
+	case "${opt}" in
+		(c) SPAWND_PIPE=$OPTARG;;
+		(?) exit 1;;
+	esac
+done
+shift $((OPTIND - 1))
+
+if ! [ -p "${SPAWND_PIPE}" ]; then
+	die "${SPAWND_PIPE} is not a named pipe"
+fi
+
+[ $# -lt 1 ] && die 'action required'
+[ $# -lt 2 ] && die 'service name required'
+
+action=$(echo "${1}" | tr 'A-Z' 'a-z')
+for valid in start stop restart status $(kill -l | tr 'A-Z' 'a-z'); do
+	[ "${action}" = "${valid}" ] && break
+done
+if [ "${action}" != "${valid}" ]; then
+	die "${action} is not a valid action or signal"
+fi
+
+echo "$@" > "${SPAWND_PIPE}"
0ui-shared: restrict to 15 levelsJason A. Donenfeld 2019-02-23ui-diff,ui-tag: don't use htmlf with non-formatted stringsChris Mayo 2019-02-23ui-ssdiff: resolve HTML5 validation errorsChris Mayo 2019-01-03filters: migrate from luacrypto to luaosslJason A. Donenfeld 2019-01-02ui-shared: fix broken sizeof in title setting and rewriteJason A. Donenfeld 2018-12-09git: update to v2.20.0Christian Hesse 2018-11-25ui-blame: set repo for sbJason A. Donenfeld 2018-11-25auth-filter: pass url with query string attachedJason A. Donenfeld 2018-11-21git: use xz compressed archive for downloadChristian Hesse 2018-10-12git: update to v2.19.1Christian Hesse 2018-09-11ui-ssdiff: ban strcat()Christian Hesse 2018-09-11ui-ssdiff: ban strncpy()Christian Hesse 2018-09-11ui-shared: ban strcat()Christian Hesse 2018-09-11ui-patch: ban sprintf()Christian Hesse 2018-09-11ui-log: ban strncpy()Christian Hesse 2018-09-11ui-log: ban strcpy()Christian Hesse 2018-09-11parsing: ban sprintf()Christian Hesse 2018-09-11parsing: ban strncpy()Christian Hesse 2018-08-28filters: generate anchor links from markdownChristian Hesse 2018-08-03Bump version.Jason A. Donenfeld 2018-08-03clone: fix directory traversalJason A. Donenfeld 2018-08-03config: record repo.snapshot-prefix in the per-repo configKonstantin Ryabitsev