Updated commands to handle missing files better.
The functional tests now pass.
This commit is contained in:
parent
9e78ca73a3
commit
633d5810e8
|
@ -9,7 +9,7 @@ function usage {
|
||||||
|
|
||||||
if [ ! -z "$1" ]; then
|
if [ ! -z "$1" ]; then
|
||||||
USER=$1
|
USER=$1
|
||||||
if [ ! -z "$(grep $USER -i $DATABASE)" ]; then
|
if [ -e "$DATABASE" ] && [ ! -z "$(grep $USER -i $DATABASE)" ]; then
|
||||||
echo "User already exists"
|
echo "User already exists"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -9,8 +9,10 @@ function usage {
|
||||||
|
|
||||||
if [ ! -z "$1" ]; then
|
if [ ! -z "$1" ]; then
|
||||||
USER=$1
|
USER=$1
|
||||||
|
if [ -f "$DATABASE" ]; then
|
||||||
ENTRIES=$(grep "$USER" -vi $DATABASE)
|
ENTRIES=$(grep "$USER" -vi $DATABASE)
|
||||||
echo "$ENTRIES" > $DATABASE
|
echo "$ENTRIES" > $DATABASE
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -3,13 +3,16 @@
|
||||||
touch /tmp/vhost.tmp
|
touch /tmp/vhost.tmp
|
||||||
|
|
||||||
# Getting domains from mail accounts
|
# Getting domains from mail accounts
|
||||||
|
if [ -f /tmp/docker-mailserver/postfix-accounts.cf ]; then
|
||||||
while IFS=$'|' read login pass
|
while IFS=$'|' read login pass
|
||||||
do
|
do
|
||||||
domain=$(echo ${login} | cut -d @ -f2)
|
domain=$(echo ${login} | cut -d @ -f2)
|
||||||
echo ${domain} >> /tmp/vhost.tmp
|
echo ${domain} >> /tmp/vhost.tmp
|
||||||
done < /tmp/docker-mailserver/postfix-accounts.cf
|
done < /tmp/docker-mailserver/postfix-accounts.cf
|
||||||
|
fi
|
||||||
|
|
||||||
# Getting domains from mail aliases
|
# Getting domains from mail aliases
|
||||||
|
if [ -f /tmp/docker-mailserver/postfix-virtual.cf ]; then
|
||||||
while read from to
|
while read from to
|
||||||
do
|
do
|
||||||
# Setting variables for better readability
|
# Setting variables for better readability
|
||||||
|
@ -18,12 +21,19 @@ do
|
||||||
# if they are equal it means the line looks like: "user1 other@domain.tld"
|
# if they are equal it means the line looks like: "user1 other@domain.tld"
|
||||||
test "$uname" != "$domain" && echo ${domain} >> /tmp/vhost.tmp
|
test "$uname" != "$domain" && echo ${domain} >> /tmp/vhost.tmp
|
||||||
done < /tmp/docker-mailserver/postfix-virtual.cf
|
done < /tmp/docker-mailserver/postfix-virtual.cf
|
||||||
|
fi
|
||||||
|
|
||||||
# Keeping unique entries
|
# Keeping unique entries
|
||||||
if [ -f /tmp/vhost.tmp ]; then
|
if [ -f /tmp/vhost.tmp ]; then
|
||||||
cat /tmp/vhost.tmp | sort | uniq > /tmp/vhost && rm /tmp/vhost.tmp
|
cat /tmp/vhost.tmp | sort | uniq > /tmp/vhost && rm /tmp/vhost.tmp
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Exit if no entries found
|
||||||
|
if [ ! -f /tmp/vhost ]; then
|
||||||
|
echo "No entries found, no keys to make"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
grep -vE '^(\s*$|#)' /tmp/vhost | while read domainname; do
|
grep -vE '^(\s*$|#)' /tmp/vhost | while read domainname; do
|
||||||
mkdir -p /tmp/docker-mailserver/opendkim/keys/$domainname
|
mkdir -p /tmp/docker-mailserver/opendkim/keys/$domainname
|
||||||
|
|
||||||
|
@ -56,9 +66,8 @@ grep -vE '^(\s*$|#)' /tmp/vhost | while read domainname; do
|
||||||
done
|
done
|
||||||
|
|
||||||
# Creates TrustedHosts if missing
|
# Creates TrustedHosts if missing
|
||||||
if [ ! -f "/tmp/docker-mailserver/opendkim/TrustedHosts" ]; then
|
if [ -d "/tmp/docker-mailserver/opendkim" ] && [ ! -f "/tmp/docker-mailserver/opendkim/TrustedHosts" ]; then
|
||||||
echo "Creating DKIM TrustedHosts";
|
echo "Creating DKIM TrustedHosts";
|
||||||
echo "127.0.0.1" > /tmp/docker-mailserver/opendkim/TrustedHosts
|
echo "127.0.0.1" > /tmp/docker-mailserver/opendkim/TrustedHosts
|
||||||
echo "localhost" >> /tmp/docker-mailserver/opendkim/TrustedHosts
|
echo "localhost" >> /tmp/docker-mailserver/opendkim/TrustedHosts
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue