diff options
Diffstat (limited to 'core/baselayout/files/install-sv')
-rwxr-xr-x | core/baselayout/files/install-sv | 34 |
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 |