2018-04-02 08:45:58 +00:00
|
|
|
#! /bin/bash
|
|
|
|
|
2021-01-16 09:16:05 +00:00
|
|
|
# shellcheck source=../scripts/helper-functions.sh
|
|
|
|
. /usr/local/bin/helper-functions.sh
|
2018-04-02 08:45:58 +00:00
|
|
|
|
2020-10-21 16:16:32 +00:00
|
|
|
DATABASE=${DATABASE:-/tmp/docker-mailserver/postfix-relaymap.cf}
|
2018-04-02 08:45:58 +00:00
|
|
|
|
2021-02-23 19:03:01 +00:00
|
|
|
function __usage
|
|
|
|
{
|
|
|
|
printf "\e[35mADDRELAYHOST\e[31m(\e[93m8\e[31m)
|
|
|
|
|
|
|
|
\e[38;5;214mNAME\e[39m
|
|
|
|
addrelayhost - add an relay host
|
|
|
|
|
|
|
|
\e[38;5;214mSYNOPSIS\e[39m
|
|
|
|
./setup.sh relay add-domain <DOMAIN> <HOST> [<PORT>]
|
|
|
|
|
|
|
|
\e[38;5;214mOPTIONS\e[39m
|
|
|
|
\e[94mGeneric Program Information\e[39m
|
|
|
|
help Print the usage information.
|
|
|
|
|
|
|
|
\e[38;5;214mEXIT STATUS\e[39m
|
|
|
|
Exit status is 0 if command was successful. If wrong arguments are provided
|
|
|
|
or arguments contain errors, the script will exit early with exit status 1.
|
|
|
|
|
|
|
|
"
|
|
|
|
}
|
|
|
|
|
|
|
|
[[ ${1:-} == 'help' ]] && { __usage ; exit 0 ; }
|
|
|
|
|
2020-10-21 16:16:32 +00:00
|
|
|
DOMAIN="${1}"
|
|
|
|
HOST="${2}"
|
|
|
|
PORT="${3}"
|
2018-04-02 08:45:58 +00:00
|
|
|
|
2021-02-23 19:03:01 +00:00
|
|
|
[[ -z ${DOMAIN} ]] && { __usage ; errex 'No domain specified' ; }
|
|
|
|
[[ -z ${HOST} ]] && { __usage ; errex 'No relay host specified' ; }
|
2020-10-21 16:16:32 +00:00
|
|
|
[[ -z ${PORT} ]] && PORT=25
|
2018-04-02 08:45:58 +00:00
|
|
|
|
2020-10-21 16:16:32 +00:00
|
|
|
if grep -qi "^@${DOMAIN}" "${DATABASE}" 2>/dev/null
|
|
|
|
then
|
2021-02-23 19:03:01 +00:00
|
|
|
sed -i \
|
|
|
|
"s|^@${DOMAIN}.*|@${DOMAIN}\t\t[${HOST}]:${PORT}|" \
|
|
|
|
"${DATABASE}"
|
2018-04-02 08:45:58 +00:00
|
|
|
else
|
2021-02-23 19:03:01 +00:00
|
|
|
echo -e "@${DOMAIN}\t\t[${HOST}]:${PORT}" >>"${DATABASE}"
|
2018-04-02 08:45:58 +00:00
|
|
|
fi
|