35 lines
1.3 KiB
Bash
35 lines
1.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
|
||
|
VIRTUALTABLE="/etc/postfix/virtusertable"
|
||
|
|
||
|
|
||
|
echo "from orchestra.apps.users import User"
|
||
|
echo "from orchestra.apps.users.roles.mailbox import Address, Mailbox"
|
||
|
echo "from orchestra.apps.domains import Domain"
|
||
|
|
||
|
cat "$VIRTUALTABLE"|grep -v "^\s*$"|while read line; do
|
||
|
NAME=$(echo "$line" | awk {'print $1'} | cut -d'@' -f1)
|
||
|
DOMAIN=$(echo "$line" | awk {'print $1'} | cut -d'@' -f2)
|
||
|
DESTINATION=$(echo "$line" | awk '{$1=""; print $0}' | sed -e 's/^ *//' -e 's/ *$//')
|
||
|
echo "domain = Domain.objects.get(name='$DOMAIN')"
|
||
|
for PLACE in $DESTINATION; do
|
||
|
if [[ ! $(echo $PLACE | grep '@') ]]; then
|
||
|
echo "try:"
|
||
|
echo " user = User.objects.get(username='$PLACE')"
|
||
|
echo "except:"
|
||
|
echo " print 'User $PLACE does not exists'"
|
||
|
echo "else:"
|
||
|
echo " mailbox, __ = Mailbox.objects.get_or_create(user=user)"
|
||
|
echo " if user.account_id != 1:"
|
||
|
echo " user.account=domain.account"
|
||
|
echo " user.save()"
|
||
|
echo ""
|
||
|
fi
|
||
|
done
|
||
|
echo "address, __ = Address.objects.get_or_create(name='$NAME', domain=domain)"
|
||
|
echo "address.account=domain.account"
|
||
|
echo "address.destination='$DESTINATION'"
|
||
|
echo "address.save()"
|
||
|
done
|