#!/bin/sh # # $NetBSD: postfix,v 1.13 2006/09/07 15:26:08 christos Exp $ # # PROVIDE: mail # REQUIRE: LOGIN # we make mail start late, so that things like .forward's are not # processed until the system is fully operational $_rc_subr_loaded . /etc/rc.subr name="postfix" rcvar=$name postfix_command="/usr/sbin/${name}" required_files="/etc/${name}/main.cf" start_precmd="postfix_precmd" start_cmd="postfix_op" stop_cmd="postfix_op" reload_cmd="postfix_op" extra_commands="reload" spooletcdir="/var/spool/${name}/etc" postconf="/usr/sbin/postconf" required_dirs=$spooletcdir _rebuild() { echo "${name}: rebuilding ${1} ($2 ${1}.db)" $($postconf -h newaliases_path) } postfix_precmd() { # As this is called after the is_running and required_dir checks # are made in run_rc_command(), we can safely assume ${spooletcdir} # exists and postfix isn't running at this point (unless forcestart # is used). # for f in localtime resolv.conf services; do if [ -f /etc/$f ]; then cmp -s /etc/$f ${spooletcdir}/$f || \ cp -p /etc/$f ${spooletcdir}/$f fi done for f in $($postconf -h alias_database); do OIFS="${IFS}" IFS="${IFS}:" set -- $f IFS="${OIFS}" case "$1" in hash) if [ -f "$2.db" ]; then if [ ! "$2" -ot "$2.db" ]; then _rebuild "$2" "out of date" fi else _rebuild "$2" "missing" fi ;; *) ;; esac done } postfix_op() { ${postfix_command} ${rc_arg} } load_rc_config $name run_rc_command "$1"