#!/bin/sh
### BEGIN INIT INFO
# Provides: postfix MTA
# Default-Start: 2345
# Default-Stop: 016
# Short-Description: start and stop postfix
# Description: Postfix is a Mail Transport Agent, which is the program
#              that moves mail from one machine to another.
### END INIT INFO

success() {
        echo " Successful"
        exit 0
}

fail() {
        echo " Failed"
        exit 1

}

check_return () {
        local ret="$1"

        if [ "$ret" = "0" ]; then
          success
        else
          fail
        fi
}

PIDFile=/var/spool/postfix/pid/master.pid
case "$1" in

        start)
        echo -n "Starting Postfix..."
        if [ ! -e /etc/aliases.db ]; then
          # The alias database is necessary for postfix to work correctly.
          echo "Creating aliases database ..."
          newaliases
        fi
        if ! postfix status >/dev/null 2>&1; then
          /usr/sbin/check_hostname.sh
          postfix start
          check_return $?
        else
          success
        fi
        ;;

        stop)
        echo -n  "Stopping Postfix..."
        if postfix status >/dev/null 2>&1; then
          postfix stop
          check_return $?
        else
          success
        fi
        ;;

        reload)
        echo -n "Reloading Postfix..."
        if postfix status >/dev/null 2>&1; then
          postfix reload
          check_return $?
        else
          postfix start
          check_return $?
        fi
        ;;

        restart)
        $0 stop
        sleep 1
        $0 start
        ;;

        status)
        if postfix status >/dev/null 2>&1; then
          pid=`sed -e 's/\s//g' $PIDFile`
          echo "The Postfix mail system is running (PID: $pid)"
          exit 0
        else
          echo "The Postfix mail system is not running"
          exit 1
        fi
        ;;

        *)
        echo "Usage: $0 {start|stop|status|reload|restart}"
        exit 1
        ;;
esac

