#!/bin/ksh ETCMAIL="/etc/mail" CFDIR="/usr/lib/mail" M4=${M4:-/usr/bin/m4} Usage() { cat</dev/null` if [ -n "$M4" -a -x "$M4" ]; then echo "Using $M4 as macro processor." elif [ -x /local/usr/bin/m4 ]; then M4=/local/usr/bin/m4 elif [ -x /usr/local/bin/m4 ]; then M4=/usr/local/bin/m4 else echo "Unable to find a usable m4 macro processor!" exit 3 fi fi DESTDIR=$ETCMAIL while getopts :"hsc:d:" ARG; do case $ARG in s) SERVER="true" ;; c) CFFILE=$OPTARG ;; d) if [ -d $OPTARG ]; then DESTDIR=$OPTARG else echo "Directory $OPTARG does not exists." exit 7 fi ;; h|*) Usage exit 1 ;; esac done if [ -z "$CFFILE" ]; then if [ -n "$SERVER" ]; then CFFILE="${ETCMAIL}/server.mc" else CFFILE="${ETCMAIL}/client.mc" fi else F=${CFFILE##/} if [ "$F" == "$CFFILE" ]; then CFFILE=`pwd`/$CFFILE fi fi if [ ! -r "$CFFILE" ]; then echo "sendmail m4 configuration file $CFFILE is not readable." exit 4 else echo "Using $CFFILE for configuration." fi TARGET=${CFFILE##*/} TARGET=${TARGET%.*}'.cf' if [ "${DESTDIR}/$TARGET" == "$CFFILE" ]; then cat<${DESTDIR}/${TARGET}.tmp if [ $? -ne 0 ]; then echo "Unable to produce ${DESTDIR}/${TARGET}." echo "${DESTDIR}/${TARGET}.tmp contains, what I got so far." echo "Delete it, if you do not need it for troubleshooting." exit 6 fi cd $DESTDIR if [ -e "$TARGET" ]; then mv ${TARGET} ${TARGET}.bak fi mv ${TARGET}.tmp ${TARGET} chmod 644 ${TARGET} rm -f sendmail.cf ln -sf ./${TARGET} sendmail.cf cat<