sendmail/sendmail.etc-mail-make
Miroslav Lichvar e861a83e20 - add NM dispatcher script (#451575)
- print warning on service start when sendmail-cf is required (#447148)
- replace Makefile with shell script to avoid dependency on make (#467841)
- fix multiarch conflicts (#343161)
- preserve timestamps on config files
- gzip RELEASE_NOTES
- defuzz patches
- drop gcc2690 patch
2008-12-03 18:29:05 +00:00

90 lines
1.7 KiB
Bash

#!/bin/sh
# Generate db and cf files if necessary. This used to be handled by
# /etc/mail/Makefile.
teste() {
if ! test -e "$1"; then
echo "$1 doesn't exist"
exit 2
fi
}
makedb() {
teste "${1%.db}"
if [ -z "$SM_FORCE_DBREBUILD" ]; then
test "${1%.db}" -nt "$1" || return 0
fi
if [ "$1" = userdb.db ]; then
makemap btree "$1" < "${1%.db}"
else
makemap hash "$1" < "${1%.db}"
fi
}
makecf() {
mc=${1%.cf}.mc
teste "$mc"
if [ -z "$SM_FORCE_CFREBUILD" ]; then
test "$mc" -nt "$1" || return 0
fi
if test -f /usr/share/sendmail-cf/m4/cf.m4; then
umask 022
[ -e "$1" ] && mv -f "$1" "$1".bak
m4 "$mc" > "$1"
else
echo "WARNING: '$mc' is modified. Please install package sendmail-cf to update your configuration."
exit 15
fi
}
makeall() {
# These could be used by sendmail, but are not part of the default install.
# To use them you will have to generate your own sendmail.cf with
# FEATURE('whatever')
test -f bitdomain && makedb bitdomain.db
test -f uudomain && makedb uudomain.db
test -f genericstable && makedb genericstable.db
test -f userdb && makedb userdb.db
test -f authinfo && makedb authinfo.db
makedb virtusertable.db
makedb access.db
makedb domaintable.db
makedb mailertable.db
makecf sendmail.cf
makecf submit.cf
}
cd /etc/mail || exit 1
[ $# -eq 0 ] && makeall
for target; do
case "$target" in
*.db)
makedb "$target"
;;
*.cf)
makecf "$target"
;;
all)
makeall
;;
clean)
rm -f *.db *~
;;
start|stop|restart)
service sendmail "$target"
;;
*)
echo "Don't know how to make $target"
exit 2
esac
done