summaryrefslogtreecommitdiffstats
path: root/rc_add
diff options
context:
space:
mode:
authorncopa <ncopa@f176ef85-8d20-0410-844a-e957b5a1c371>2006-10-24 12:26:42 +0000
committerncopa <ncopa@f176ef85-8d20-0410-844a-e957b5a1c371>2006-10-24 12:26:42 +0000
commitc8b95b81b69af4a0f90340f5874dcfe6ff057a9d (patch)
tree94bc4f11d8c3466b02d5aee235ff15c4fed3c50f /rc_add
downloadalpine-baselayout-c8b95b81b69af4a0f90340f5874dcfe6ff057a9d.tar.bz2
alpine-baselayout-c8b95b81b69af4a0f90340f5874dcfe6ff057a9d.tar.xz
initial import based on 1.0.1
Diffstat (limited to 'rc_add')
-rwxr-xr-xrc_add78
1 files changed, 78 insertions, 0 deletions
diff --git a/rc_add b/rc_add
new file mode 100755
index 0000000..de0b8c3
--- /dev/null
+++ b/rc_add
@@ -0,0 +1,78 @@
+#!/bin/sh
+#
+# rc_add - add an init script to a runlevel
+#
+# Copyright (c) 2005 Natanael Copa
+#
+# Distributed under GPL-2
+#
+
+PROGRAM=`basename $0`
+
+#load the libraries
+. /sbin/functions.sh
+
+STARTNUM=50
+RCDIR="$ROOT/etc/rcL.d"
+
+die() {
+ echo "$1" >&2
+ exit 1
+}
+
+# print usage and die
+usage() {
+ echo "$PROGRAM $VERSION"
+ echo "usage: $PROGRAM [-hv] [-s number] script"
+ echo ""
+ echo " -h Show help and exit."
+ echo " -k Also add a corresponding kill link for shutdown/reboot."
+ echo " -s Set two-digit start number (00-99). Default is $STARTNUM."
+ echo " -S Add service as a system init service (rcS.d)."
+ echo " -v Turn on verbose output."
+ echo ""
+ exit 1
+}
+
+#parse args
+unset vflag
+while getopts "hks:Sv" opt ; do
+ case "$opt" in
+ h) usage;;
+ k) KILL="-k";;
+ s) STARTNUM="$OPTARG";;
+ S) RCDIR="ROOT/rcS.d";;
+ v) vflag="-v"; VERBOSE=1 ;;
+ \?) usage;;
+ esac
+done
+shift `expr $OPTIND - 1`
+
+# check if script is specified
+[ $# -lt 1 ] && usage
+
+while [ $# -gt 0 ] ; do
+ SCRIPT="$1"
+
+ # validate the start number
+ echo "$STARTNUM" | grep '^[0-9][0-9]$' > /dev/null || die "Start number needs to be a 2 digit number. (00-99)"
+
+ mkdir -p "$ROOT/$RCDIR"
+ cd "$ROOT/$RCDIR"
+
+ LINKTARGET="../init.d/$SCRIPT"
+ [ -f "$LINKTARGET" ] || die "Could not find init script $LINKTARGET"
+ SLINK="S$LEVEL$STARTNUM$SCRIPT"
+ [ "$VERBOSE" ] && echo "Creating $ROOT/$RCDIR/$SLINK."
+ ln -sf $LINKTARGET "$ROOT/$RCDIR/$SLINK" || exit $?
+
+ if [ "$KILL" ] ; then
+ KLINK="K$LEVEL$STARTNUM$SCRIPT"
+ [ "$VERBOSE" ] && echo "Creating $ROOT/etc/rcK.d/$KLINK."
+ mkdir -p "$ROOT/etc/rcK.d"
+ ln -sf $LINKTARGET "$ROOT/etc/rcK.d/$KLINK" || exit $?
+ fi
+
+ shift
+done
+exit 0