#!/bin/sh
# local-install.sh
# for Bacula on Slackware platform
# Phil Stracchino 13 Mar 2004
#
# Installs and removes Bacula install section into /etc/rc.d/rc.local
# provided /etc/rc.d/rc.local is writeable. Creates a backup copy of
# /etc/rc.d/rc.local in /etc/rc.d/rc.local.bak if /etc/rc.d is writeable.
#
# Usage: local-install.sh install|remove [destdir]
#
# uncomment for debugging:
#set -x
if [ -n "$2" ] ; then
TARG=$DESTDIR/etc/rc.d/rc.local
else
TARG=/etc/rc.d/rc.local
fi
if [ ! -f $TARG ] ; then
echo $TARG does not appear to exist. Bailing out.
exit -1
fi
if [ "$1" = "install" ] ; then
echo Installing Bacula autostart into $TARG:
COUNT=`grep -c "Bacula section @@@@" $TARG`
if [ ! "$COUNT" == "0" ] ; then
echo -e "\tBacula autostart section appears to be already installed.\n\tIf you have changed the configuration, make uninstall-autostart\n\tthen make install-autostart again.\n"
else
if [ -w $TARG ] ; then
if [ -w `dirname $TARG` ] ; then
cp -p $TARG $TARG.bak
echo -e "\tBackup copy of $TARG saved in $TARG.bak."
else
echo -e "\tWARNING: Unable to create backup copy of $TARG.\n\tAttempting to continue anyway.";
fi
cat >> $TARG << EOF
# @@@@ Start Bacula section @@@@
# The line above is needed to automatically remove bacula.
if [ -x /etc/rc.d/rc.bacula-sd ]; then
/etc/rc.d/rc.bacula-sd start
fi
if [ -x /etc/rc.d/rc.bacula-fd ]; then
/etc/rc.d/rc.bacula-fd start
fi
if [ -x /etc/rc.d/rc.bacula-dir ]; then
/etc/rc.d/rc.bacula-dir start
fi
# @@@@ End Bacula section @@@@
EOF
echo -e "\tBacula autostart section has been installed in $TARG.\n";
else
echo -e "\tERROR! Cannot write to $TARG.\n\tBailing out.\n"
exit -1
fi
fi
elif [ "$1" = "remove" ] ; then
echo Removing Bacula autostart from $TARG:
COUNT=`grep -c "Bacula section @@@@" $TARG`
if [ ! "$COUNT" == "2" ] ; then
echo -e "\tCould not find Bacula autostart section in $TARG. Bailing out.\n"
exit -1
else
if [ -w $TARG ] ; then
if [ -w `dirname $TARG` ] ; then
cp -p $TARG $TARG.bak
echo -e "\tBackup copy of $TARG saved in $TARG.bak."
else
echo -e "\tWARNING: Unable to create backup copy of $TARG.\n\tAttempting to continue anyway.";
fi
FIRST=`grep -n "@@@@ Start Bacula section @@@@" $TARG | cut -d: -f1`
LAST=`grep -n "@@@@ End Bacula section @@@@" $TARG | cut -d: -f1`
FIRST=`expr $FIRST - 1`
LAST=`expr $LAST + 1`
head -$FIRST $TARG > ./installtmp
tail +$LAST $TARG >> ./installtmp
cat ./installtmp > $TARG
rm ./installtmp
echo -e "\tBacula autostart section has been removed from $TARG.\n";
fi
fi
else
echo -e "\tUSAGE: $0 install|remove [destdir]"
fi
exit 0
syntax highlighted by Code2HTML, v. 0.9.1