added needed scripts for alias management

This commit is contained in:
Thomas A. Kilian 2017-03-11 14:19:43 +01:00
parent 9b7a14d8cc
commit c17cd0f69b
3 changed files with 73 additions and 0 deletions

30
target/bin/addalias Executable file
View File

@ -0,0 +1,30 @@
#! /bin/bash
DATABASE=${DATABASE:-/tmp/docker-mailserver/postfix-virtual.cf}
EMAIL="$1"
RECIPIENT="$2"
usage() {
echo "Usage: addalias <user@domain> <recipient@other>"
}
errex() {
echo "$@" 1>&2
exit 1
}
escape() {
echo "${1//./\\.}"
}
[ -z "$EMAIL" ] && { usage; errex "no email specified"; }
grep -qi "^$(escape $EMAIL)[a-zA-Z@.\ ]*$(escape $RECIPIENT)" $DATABASE 2>/dev/null &&
errex "Alias \"$EMAIL $RECIPIENT\" already exists"
if grep -qi "^$(escape $EMAIL)" $DATABASE 2>/dev/null; then
sed -i '' "/$EMAIL/s/$/ $RECIPIENT/" $DATABASE
else
echo "$EMAIL $RECIPIENT" >> $DATABASE
fi

30
target/bin/delalias Executable file
View File

@ -0,0 +1,30 @@
#! /bin/bash
DATABASE=${DATABASE:-/tmp/docker-mailserver/postfix-virtual.cf}
EMAIL="$1"
RECIPIENT="$2"
usage() {
echo "Usage: delalias <user@domain> <recipient@other>"
}
errex() {
echo "$@" 1>&2
exit 1
}
escape() {
echo "${1//./\\.}"
}
[ -z "$EMAIL" ] || [ -z "$RECIPIENT" ] && { usage; errex "No email specifed"; }
[ -s "$DATABASE" ] || exit 0
CNT=$(grep "^$EMAIL" $DATABASE | wc -w | awk '{print $1}')
if [[ $CNT -eq 2 ]]; then
sed -i '' "/^$EMAIL/d" $DATABASE
else
sed -i '' "/^$EMAIL/s/ $RECIPIENT//g" $DATABASE
fi

13
target/bin/listalias Executable file
View File

@ -0,0 +1,13 @@
#! /bin/bash
DATABASE=${DATABASE:-/tmp/docker-mailserver/postfix-virtual.cf}
errex() {
echo "$@" 1>&2
exit 1
}
[ -f $DATABASE ] || errex "No postfix-virtual.cf file"
[ -s $DATABASE ] || errex "Empty postfix-virtual.cf - no aliases have been added"
cat $DATABASE