aboutsummaryrefslogtreecommitdiff
path: root/contrib/respawn
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/respawn')
-rw-r--r--contrib/respawn23
1 files changed, 23 insertions, 0 deletions
diff --git a/contrib/respawn b/contrib/respawn
new file mode 100644
index 0000000..1b914ea
--- /dev/null
+++ b/contrib/respawn
@@ -0,0 +1,23 @@
+#!/bin/sh -e
+# POSIX shell variant for ubase respawn
+
+usage() {
+ printf 'usage: %s [-d N] cmd [args...]\n' "${0##*/}"
+ exit "${1:-0}"
+}
+
+die() { printf '%s\n' "$@" >&2; exit 1;}
+
+case "$1" in
+ -d) [ "$3" ] || usage 1
+ [ "$2" -gt 0 ] || die "Not a number: $2"
+ delay=$2; shift 2
+ ;;
+ --help|-h|'') usage ;;
+ -*) usage 1
+esac
+
+while :; do
+ "$@"
+ [ "$delay" ] && sleep "$delay"
+done