www.nico.schottelius.org/software/cinit/browse_source/cinit-0.2.1/bin/cinit.add.dependency
Nico Schottelius 423ba10303 import cinit from unix.schottelius.org
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-09-16 12:53:45 +02:00

51 lines
1.2 KiB
Bash

#!/bin/sh
# Nico Schottelius
# cinit: create dependency: service a needs or wants service b
# init variables
. $(dirname $0)/cinit.read-conf
BASEDIR=$DESTDIR/$CINIT_DIR
if [ $# -ne 3 ]; then
echo "`basename $0`: service_A [wants|needs] service_B"
echo ""
echo " Service A needs or wants Service B."
echo " Use relative paths, not absolute."
echo " You must specify whether to use wants or needs."
echo ""
exit 23
fi
SVC_A=$1
DEP=$2
SVC_B=$3
# adding 'wishes' for x-mas and requires for 'the mass' and 'tv'
case $DEP in
wishes|wants) DEP=$C_WANTS ;;
needs|requires) DEP=$C_NEEDS ;;
*) echo "Did not I say \"want\" or \"need\"? You _must_ use those terms."
esac
# FIXME: could someone PLEASE simply that?
SLASHES=$(echo $SVC_A | sed -e 's,/$,,' -e 's,[^/],,g' -e 's,/,../,g' -e 's,^,../../,')
DEST_NAME=$(echo $SVC_B | sed -e 's,/$,,' -e 's,/,-,g')
SOURCE="${SLASHES}${SVC_B}"
DEP_DIR="${BASEDIR}/${SVC_A}/${DEP}"
if [ ! -d "$DEP_DIR" ]; then
echo "$DEP_DIR does not exist, creating..."
mkdir "$DEP_DIR"
if [ $? -ne 0 ]; then
echo "Error occured due to creating directory. Exiting."
exit 1
fi
fi
DEST="${DEP_DIR}/${DEST_NAME}"
echo -n "Linking $SOURCE to $DEST ... "
ln -sf "$SOURCE" "$DEST"
echo "finished."