#! /bin/sh # # patch inetd.conf and services # originally by Axel Zinser (fifi@hiss.han.de) # prefix="@prefix@" exec_prefix="@exec_prefix@" libexecdir="@libexecdir@" USE_VERSION_SUFFIXES="@USE_VERSION_SUFFIXES@" if test "$USE_VERSION_SUFFIXES" = "yes"; then SUF="-@VERSION@" else SUF= fi SERVICE_SUFFIX="@SERVICE_SUFFIX@" USER="@CLIENT_LOGIN@" INETDCONF=/etc/inetd.conf [ ! -f $INETDCONF ] && INETDCONF=/usr/etc/inetd.conf SERVICES=/etc/services [ ! -f $SERVICES ] && SERVICES=/usr/etc/services ENABLE_AMANDAD=true case `uname -n` in "@DEFAULT_SERVER@" | "@DEFAULT_SERVER@".*) ENABLE_INDEX=true ENABLE_TAPE=true ;; *) ENABLE_INDEX=false ENABLE_TAPE=false ;; esac CLIENT_PORT=10080 KCLIENT_PORT=10081 INDEX_PORT=10082 TAPE_PORT=10083 while [ $# != 0 ]; do case "$1" in --service-suffix=*) SERVICE_SUFFIX=`echo $1 | sed -e 's/[^=]*=//'`;; --version-suffix=*) SUF=`echo $1 | sed -e 's/[^=]*=//'`;; --inetd=*) INETDCONF=`echo $1 | sed -e 's/[^=]*=//' -e 's%^$%/dev/null%'`;; --services=*) SERVICES=`echo $1 | sed -e 's/[^=]*=//' -e 's%^$%/dev/null%'`;; --libexecdir=?*) libexecdir=`echo $1 | sed -e 's/[^=]*=//'`;; --user=?*) USER=`echo $1 | sed -e 's/[^=]*=//'`;; --enable-client) ENABLE_AMANDAD=true;; --disable-client) ENABLE_AMANDAD=false;; --enable-index) ENABLE_INDEX=true;; --disable-index) ENABLE_INDEX=false;; --enable-tape) ENABLE_TAPE=true;; --disable-tape) ENABLE_TAPE=false;; --client-port=?*) CLIENT_PORT=`echo $1 | sed -e 's/[^=]*=//'`;; --kclient-port=?*) KCLIENT_PORT=`echo $1 | sed -e 's/[^=]*=//'`;; --index-port=?*) INDEX_PORT=`echo $1 | sed -e 's/[^=]*=//'`;; --tape-port=?*) TAPE_PORT=`echo $1 | sed -e 's/[^=]*=//'`;; --usage | --help | -h) echo "call this script with zero or more of the following arguments:" echo "--version-suffix=: append to program names [$SUF]" echo "--service-suffix=: append to service names [$SERVICE_SUFFIX]" echo "--libexecdir=: where daemons should be looked for [$libexecdir]" echo "--inetd=: full pathname of inetd.conf [$INETDCONF]" echo "--services=: full pathname of services [$SERVICES]" echo " an empty pathname or /dev/null causes that file to be skipped" echo "--user=: run deamons as this user [$USER]" echo "--enable/disable-client: enable/disable amandad [`$ENABLE_AMANDAD && echo enabled || echo disabled`]" echo "--enable/disable-index: enable/disable index server [`$ENABLE_INDEX && echo enabled || echo disabled`]" echo "--enable/disable-tape: enable/disable tape server [`$ENABLE_TAPE && echo enabled || echo disabled`]" echo "--client-port=: amandad port number [$CLIENT_PORT]" echo "--kclient-port=: kamandad port number [$KCLIENT_PORT]" echo "--index-port=: index server port number [$INDEX_PORT]" echo "--tape-port=: tape server port number [$TAPE_PORT]" exec true;; *) echo "$0: invalid argument $1. run with -h for usage" >&2 exec false;; esac shift done if [ "$SERVICES" = /dev/null ]; then : elif [ -f "$SERVICES" ]; then TEMP="$SERVICES.new" { egrep < "$SERVICES" -v "^(amanda|kamanda|amandaidx|amidxtape)${SERVICE_SUFFIX}[ ]" echo "amanda${SERVICE_SUFFIX} ${CLIENT_PORT}/udp" echo "amanda${SERVICE_SUFFIX} ${CLIENT_PORT}/tcp" echo "kamanda${SERVICE_SUFFIX} ${KCLIENT_PORT}/udp" echo "amandaidx${SERVICE_SUFFIX} ${INDEX_PORT}/tcp" echo "amidxtape${SERVICE_SUFFIX} ${TAPE_PORT}/tcp" } > "$TEMP" if diff "$SERVICES" "$TEMP" >/dev/null 2>/dev/null; then echo "$SERVICES is up to date" else cp "$TEMP" "$SERVICES" || echo "cannot patch $SERVICES" fi rm -f "$TEMP" else echo "$SERVICES not found!" fi if [ "$INETDCONF" = /dev/null ]; then : elif [ -f "$INETDCONF" ]; then $ENABLE_AMANDAD && test ! -f $libexecdir/amandad$SUF && echo "warning: $libexecdir/amandad$SUF does not exist" >&2 $ENABLE_INDEX && test ! -f $libexecdir/amindexd$SUF && echo "warning: $libexecdir/amindexd$SUF does not exist" >&2 $ENABLE_TAPE && test ! -f $libexecdir/amidxtaped$SUF && echo "warning: $libexecdir/amidxtaped$SUF does not exist" >&2 TEMP="$INETDCONF.new" { egrep < "$INETDCONF" -v "^(amanda|amandaidx|amidxtape)${SERVICE_SUFFIX}[ ]" $ENABLE_AMANDAD && echo "amanda${SERVICE_SUFFIX} dgram udp wait $USER $libexecdir/amandad$SUF amandad$SUF" $ENABLE_INDEX && echo "amandaidx${SERVICE_SUFFIX} stream tcp nowait $USER $libexecdir/amindexd$SUF amindexd$SUF" $ENABLE_TAPE && echo "amidxtape${SERVICE_SUFFIX} stream tcp nowait $USER $libexecdir/amidxtaped$SUF amidxtaped$SUF" } > "$TEMP" if diff "$INETDCONF" "$TEMP" >/dev/null 2>/dev/null; then echo "$INETDCONF is up to date" else cp "$TEMP" "$INETDCONF" || echo "cannot patch $INETDCONF" fi rm -f "$TEMP" else echo "$INETDCONF not found!" fi