aboutsummaryrefslogtreecommitdiff
path: root/core/baselayout/files
diff options
context:
space:
mode:
Diffstat (limited to 'core/baselayout/files')
-rwxr-xr-xcore/baselayout/files/install-sv34
1 files changed, 34 insertions, 0 deletions
diff --git a/core/baselayout/files/install-sv b/core/baselayout/files/install-sv
new file mode 100755
index 00000000..509b2516
--- /dev/null
+++ b/core/baselayout/files/install-sv
@@ -0,0 +1,34 @@
+#!/bin/sh -e
+# Carbs Linux service installer
+
+usage() {
+ printf '%s\n' \
+ "usage: ${0##*/} [FILE...]" \
+ "or: ${0##*/} [-a NAME FILE]" "" \
+ "You can set the DESTDIR environment variable to set a different root."
+ exit 1
+}
+
+svname=''
+case "$1" in
+ --help|-h|'') usage ;;
+ -a) [ "$#" -eq 3 ] || usage
+ svname=$2; shift 2
+esac
+
+for service; do
+ # Remove .run suffix and the directory name for service files.
+ sv=${svname:-${service%.run}} sv=${sv##*/}
+
+ # Create the service directories and copy the service file to them.
+ mkdir -p "$DESTDIR/etc/sysmgr" "$DESTDIR/etc/sv/$sv"
+ cp "$service" "$DESTDIR/etc/sysmgr/$sv"
+ cp "$service" "$DESTDIR/etc/sv/$sv/run"
+
+ # Set permissions for the services.
+ chmod 0755 "$DESTDIR/etc/sysmgr/$sv" "$DESTDIR/etc/sv/$sv/run"
+
+ # Create supervise directories for runit.
+ ln -s "/run/runit/supervise.$sv" "$DESTDIR/etc/sv/$sv/supervise"
+
+done