From 3412f378241a5251748342ba50bb94628a55009e Mon Sep 17 00:00:00 2001 From: Christoph Date: Wed, 24 Oct 2018 14:08:19 +0200 Subject: [PATCH] Add default values if no configuration file is present or value not given. --- install_amavis.sh | 128 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 118 insertions(+), 10 deletions(-) diff --git a/install_amavis.sh b/install_amavis.sh index 2058ec2..f01e4ac 100755 --- a/install_amavis.sh +++ b/install_amavis.sh @@ -1,7 +1,13 @@ #!/usr/bin/env bash -_QUARANTINE_ADMIN='postmaster\@$mydomain' -QUARANTINE_ADMIN=$_QUARANTINE_ADMIN + +script_dir="$(realpath $(dirname $0))" +script_name="$(basename "$0")" +conf_file="${script_dir}/conf/install_amavis.conf" + +backup_date="$(date +%Y-%m-%d-%H%M)" +crontab_backup_file="${script_dir}/crontab-root-${backup_date}.install_amavis.lst" + # ------------- @@ -90,6 +96,29 @@ detect_os_1 () { } +# ------------- +# --- Some default settings +# ------------- + +DEFAULT_QUARANTINE_DIR="/var/QUARANTINE" +DEFAULT_QUARANTINE_ADMIN='postmaster\@$mydomain' +DEFAULT_DB_IN_USE=false + +DEFAULT_INSTALL_CLAMAV_UNOFFICIAL_SIGS=true + +DEFAULT_MALWARE_PATROL_IN_USE=true +DEFAULT_MALWERE_PATROL_FREE=false +DEFAULT_MP_RECEIPT_NUMBER=106015125438 + +DEFAULT_SECURITE_INFO_IN_USE=true +DEFAULT_SI_AUTHORISATION_SIGNATURE_WF=76ed7ca6670dbee497e1a0397a7e178c4caa25888bc26d7327d1eab0195342a4cfa522dcf10382623d57dbc2a79bd37627b9a52def4d4bfe617d26e35405ce3b +DEFAULT_SI_AUTHORISATION_SIGNATURE_OOPEN=b0b7e94d3fcc8f3b1f128edd5830392361868cf0174723a9924ac25bf8b1b588cb974b50234e1bc1d9839dfe0ca6e1627733d90daf1399347b1046d20c2e3a89 + +# - This parameter will be not asked, so setting it here +# - +QUARANTINE_ADMIN=$DEFAULT_QUARANTINE_ADMIN + + # - Is this a systemd system? # - if [[ "X`which systemd`" = "X" ]]; then @@ -107,17 +136,34 @@ detect_os_1 echo "" - -script_dir="$(realpath $(dirname $0))" -conf_file="${script_dir}/conf/install_amavis.conf" - -backup_date="$(date +%Y-%m-%d-%H%M)" -crontab_backup_file="${script_dir}/crontab-root-${backup_date}.install_amavis.lst" - if [[ -f "$conf_file" ]]; then source $conf_file fi + + +# ------------- +# --- Set default values for some non existent variables (i.e. no configuration file is present) +# ------------- + +if [[ -z "$_HOSTNAME" ]] ; then + _HOSTNAME="$(hostname -f)" + _HOSTNAME_SHORT="$(hostname)" + [[ "$_HOSTNAME" = "$_HOSTNAME_SHORT" ]] && _HOSTNAME="" +fi + + +[[ -z "$_QUARANTINE_DIR" ]] && _QUARANTINE_DIR="$DEFAULT_QUARANTINE_DIR" + +[[ -z "$_DB_IN_USE" ]] && _DB_IN_USE=$DEFAULT_DB_IN_USE + +[[ -z "$_INSTALL_CLAMAV_UNOFFICIAL_SIGS" ]] && _INSTALL_CLAMAV_UNOFFICIAL_SIGS=$DEFAULT_INSTALL_CLAMAV_UNOFFICIAL_SIGS + +[[ -z "$_MALWARE_PATROL_IN_USE" ]] && _MALWARE_PATROL_IN_USE=$DEFAULT_MALWARE_PATROL_IN_USE +[[ -z "$_MALWERE_PATROL_FREE" ]] && _MALWERE_PATROL_FREE=$DEFAULT_MALWERE_PATROL_FREE + +[[ -z "$_SECURITE_INFO_IN_USE" ]] && _SECURITE_INFO_IN_USE=$DEFAULT_SECURITE_INFO_IN_USE + #clear #echo "" #echo -e "\033[32m--\033[m" @@ -190,6 +236,43 @@ else fi + +# ------------- +# --- Some further default values depending on Hostname +# ------------- + +if [[ -z "$_HOSTNAME" ]] ; then + _HOSTNAME="$(hostname -f)" + _HOSTNAME_SHORT="$(hostname)" + [[ "$_HOSTNAME" = "$_HOSTNAME_SHORT" ]] && _HOSTNAME="" +fi + + +# - Set default values for ipv4- and ipv6-address +# - +if [[ -z $_IPV4 ]] && [[ -n "$_HOSTNAME" ]] && [[ -x "$(which dig)" ]]; then + _IPV4="$(dig +short "$_HOSTNAME" A)" +fi +if [[ -z $_IPV6 ]] && [[ -n "$_HOSTNAME" ]] && [[ -x "$(which dig)" ]]; then + _IPV6="$(dig +short "$_HOSTNAME" AAAA)" +fi + +# - Set defaul value for securite signature +# - +if [[ -z "$_SI_AUTHORISATION_SIGNATURE" ]]; then + [[ "$HOSTNAME" =~ warenform.de$ ]] && _SI_AUTHORISATION_SIGNATURE=$DEFAULT_SI_AUTHORISATION_SIGNATURE_WF + + # - For all this take O.OPEN's Signature + # - + [[ "$HOSTNAME" =~ oopen.de$ ]] && _SI_AUTHORISATION_SIGNATURE=$DEFAULT_SI_AUTHORISATION_SIGNATURE_OOPEN + [[ "$HOSTNAME" =~ cadus.org$ ]] && _SI_AUTHORISATION_SIGNATURE=$DEFAULT_SI_AUTHORISATION_SIGNATURE_OOPEN + [[ "$HOSTNAME" =~ so36.net$ ]] && _SI_AUTHORISATION_SIGNATURE=$DEFAULT_SI_AUTHORISATION_SIGNATURE_OOPEN + [[ "$HOSTNAME" =~ interventionistische-linke.org$ ]] && _SI_AUTHORISATION_SIGNATURE=$DEFAULT_SI_AUTHORISATION_SIGNATURE_OOPEN + +fi + + + IPV4= echo "" echo -e "\033[32m--\033[m" @@ -404,6 +487,11 @@ if $INSTALL_CLAMAV_UNOFFICIAL_SIGS ; then MALWERE_PATROL_FREE=false fi + # - Set default Value for Malware Patrol serial number (if non free account in use) + # - + if ! $MALWERE_PATROL_FREE ; then + [[ -z "$_MP_RECEIPT_NUMBER" ]] && _MP_RECEIPT_NUMBER="$DEFAULT_MP_RECEIPT_NUMBER" + fi echo "" echo -e "\033[32m--\033[m" @@ -730,7 +818,7 @@ echo "" echononl " Save Configuration" cat << EOF > $conf_file # --- -# - Parametersettins postfix bases system +# - Parametersettings for installscript $script_name # --- _HOSTNAME=$HOSTNAME @@ -748,11 +836,31 @@ _DB_USER=$DB_USER _DB_PASS=$DB_PASS _INSTALL_CLAMAV_UNOFFICIAL_SIGS=$INSTALL_CLAMAV_UNOFFICIAL_SIGS _MALWARE_PATROL_IN_USE=$MALWARE_PATROL_IN_USE +EOF +if $MALWARE_PATROL_IN_USE ; then + cat << EOF >> $conf_file _MALWERE_PATROL_FREE=$MALWERE_PATROL_FREE _MP_RECEIPT_NUMBER=$MP_RECEIPT_NUMBER +EOF +else + cat << EOF >> $conf_file +_MALWERE_PATROL_FREE= +_MP_RECEIPT_NUMBER= +EOF +fi +if $SECURITE_INFO_IN_USE ; then + cat << EOF >> $conf_file _SECURITE_INFO_IN_USE=$SECURITE_INFO_IN_USE _SI_AUTHORISATION_SIGNATURE=$SI_AUTHORISATION_SIGNATURE + EOF +else + cat << EOF >> $conf_file +_SECURITE_INFO_IN_USE=$SECURITE_INFO_IN_USE +_SI_AUTHORISATION_SIGNATURE= + +EOF +fi if [[ $? -eq 0 ]] ; then echo_ok else