From 377466579220c5246680be4013062521ff1e8599 Mon Sep 17 00:00:00 2001 From: Matthew Saunders Brown Date: Sat, 18 Feb 2023 16:20:03 -0800 Subject: [PATCH] enable getopts --- bin/vmail-webmail-disable.sh | 36 +++++++++++++++++++----------- bin/vmail-webmail-enable.sh | 43 +++++++++++++++++++++++------------- 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/bin/vmail-webmail-disable.sh b/bin/vmail-webmail-disable.sh index 35d6a32..6f3d615 100755 --- a/bin/vmail-webmail-disable.sh +++ b/bin/vmail-webmail-disable.sh @@ -5,25 +5,35 @@ # Copyright (c) 2022 Matthew Saunders Brown # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# must be root to disable apache config -if [ "$USER" != "root" ]; then - exec su "$0" -- "$@" -fi +# load include file +source $(dirname $0)/vmail.sh -# check for and set virtualhost -if [ -n "$1" ]; then - virtualhost=$1 -else - echo "virtualhost not set" +help() +{ + thisfilename=$(basename -- "$0") + echo "$thisfilename" + echo "Disable webmail for given domain" + echo "" + echo "usage: $thisfilename -d [-h]" + echo "" + echo " -h Print this help." + echo " -d Domain to disable webmail for." +} + +vmail:getoptions "$@" + +# check for domain +if [[ -z $domain ]]; then + echo "ERROR: domain name is required" exit 1 fi # disable webmail vhost & restart apache -if [ -h "/etc/apache2/sites-enabled/mail.$virtualhost.conf" ]; then - /usr/sbin/a2dissite --quiet mail.$virtualhost +if [ -h "/etc/apache2/sites-enabled/mail.$domain.conf" ]; then + /usr/sbin/a2dissite --quiet mail.$domain /usr/bin/systemctl --quiet reload apache2 fi -if [ -f "/etc/apache2/sites-available/mail.$virtualhost.conf" ]; then - rm /etc/apache2/sites-available/mail.$virtualhost.conf +if [ -f "/etc/apache2/sites-available/mail.$domain.conf" ]; then + rm /etc/apache2/sites-available/mail.$domain.conf fi diff --git a/bin/vmail-webmail-enable.sh b/bin/vmail-webmail-enable.sh index 202e971..375b4dc 100755 --- a/bin/vmail-webmail-enable.sh +++ b/bin/vmail-webmail-enable.sh @@ -5,31 +5,44 @@ # Copyright (c) 2022 Matthew Saunders Brown # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# must be root to enable apache config -if [ "$USER" != "root" ]; then - exec su "$0" -- "$@" -fi +# load include file +source $(dirname $0)/vmail.sh -# check for and set virtualhost -if [ -n "$1" ]; then - virtualhost=$1 -else - echo "virtualhost not set" +help() +{ + thisfilename=$(basename -- "$0") + echo "$thisfilename" + echo "Enable webmail for given domain" + echo "" + echo "usage: $thisfilename -d [-h]" + echo "" + echo " -h Print this help." + echo " -d Domain to enable webmail for." + echo "" + echo " Let's Encrypt certificate must already exist. If need be run this first:" + echo " letsencrypt-certonly.sh -d " +} + +vmail:getoptions "$@" + +# check for domain +if [[ -z $domain ]]; then + echo "ERROR: domain name is required" exit 1 fi # check that letsencrypt cert exists -if [ ! -f /etc/ssl/letsencrypt/mail.$virtualhost.pem ]; then - echo "Let's Encrypt cert for mail.$virtualhost does not exist, create that first:" +if [ ! -f /etc/ssl/letsencrypt/mail.$domain.pem ]; then + echo "Let's Encrypt cert for mail.$domain does not exist, create that first:" exit 1 fi # enable webmail vhost & restart apache -if [ ! -f "/etc/apache2/sites-available/mail.$virtualhost.conf" ]; then - echo "Use VMailHTTPS mail.$virtualhost" > /etc/apache2/sites-available/mail.$virtualhost.conf +if [ ! -f "/etc/apache2/sites-available/mail.$domain.conf" ]; then + echo "Use VMailHTTPS mail.$domain" > /etc/apache2/sites-available/mail.$domain.conf fi -if [ ! -h "/etc/apache2/sites-enabled/mail.$virtualhost.conf" ]; then - /usr/sbin/a2ensite --quiet mail.$virtualhost +if [ ! -h "/etc/apache2/sites-enabled/mail.$domain.conf" ]; then + /usr/sbin/a2ensite --quiet mail.$domain /usr/bin/systemctl --quiet is-active apache2 && systemctl --quiet reload apache2 fi