51 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			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."
 |