#!/bin/sh

. /etc/mailconfig

check_mail()
{
    mail=$1
    domain=`echo $mail | awk -F '@' '{ print $2 }'`

    if [ "$domain" != `hostname` ]; then
       echo "bad domain"
       exit 1
    fi;

    mail_exist=`egrep "$mail" $PASSWD_FILE`
    if [ -z $mail_exist ]; then
        print "This address doesn't exist"
        exit 1
    fi

}

check_alias()
{
    mail=$1

    while read line; do
        alias=`echo $line | awk -F ':' '{ print $1 }'`
        isvmail=`echo $line | awk -F ':' '{ print $2 }'`
        if [ "$mail" = "$alias" ] && [ "$isvmail" != " vmail" ]; then
            echo "Address already exist in alias!"
            exit 2;
        fi;
    done < $ALIAS_FILE
}

check_app_mail()
{
    mail=$1
    while read line; do
        if ["mail" == "line"]; then
            echo "Adress already exist"
            exit 2;
        fi;
    done < $APP_MAIL
}


add_alias()
{
    print "$2":" $1" >> "$alias_file"
}

del_alias()
{
    while read line; do
        if [ "$1: $2" = "$line" ]; then
            cat alias | grep -w -v -e "$1" > /tmp/alias.tmp
            mv /tmp/alias.tmp "$alias_file"
            isremove=1
        fi
    done < "$ALIAS_FILE"
}


usage(){
    print "This program ask 3 arguments : \n"
    print "First is email with domain name of this host second is add or del for \n"
    print "add or delete an alias "
    print "\t$0 email-adresse del alias@`hostname`\n"
    print "Other example:\n\t $0 test@`hostname` add myalias@`hostname` "
    print "This script require root privilèges"
}

if [ `id -u` -ne 0 ]; then
    usage
    exit 4;
fi

if [ -z $1 ];
then
    usage
    exit 3;
fi

if [ -z $2 ];
then
    usage
    exit 3;
fi


check_mail $1


case $2 in
    "add")
        check_alias $3
        check_app_mail $3
        add_alias $1 $3
        ;;
    "del")
        del_alias $3 $1
        ;;
    *)
        usage
        exit 4;
        ;;
esac