#! /bin/sh #------------------------------------------------------------------------------ # /var/install/config.d/mailman-update.sh - paramater update script # # Copyright (c) 2008 the eisfair team, team(at)eisfair(dot)org # # Creation : 2008-10-27 scholze # Last update: $Id$ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #------------------------------------------------------------------------------ packages_name=mailman # include configlib for using printvar . /var/install/include/configlib # include eislib . /var/install/include/eislib ### --------------------------------------------------------------------------- ### Set the default values for configuration ### --------------------------------------------------------------------------- START_MAILMAN='yes' # Start service: yes or no MAILMAN_DOMAIN_N='1' # Number of Domains to serve MAILMAN_DOMAIN_1='just.testing' # 1.st Domainname e.g. privacy.net MAILMAN_DOMAIN_1_IS_MAILHOST='no' # 1.st Domainname e.g. privacy.net MAILMAN_ARCHIVE='no' # use archive MAILMAN_ARCHIVE_PUBLIC='no' # if no: private Archive MAILMAN_ARCHIVE_PUBLIC_MAIL='no' # if yes: MBOX publically available MAILMAN_ARCHIVE_MBOX='-1' # possible: -1 do nothing MAILMAN_ARCHIVE_FREQ='0' # 0 year/1 month/2 Quarter/3 week/4 Day MAILMAN_ARCHIVE_WEB_GZIP='no' # enable GZIP-archive for Download MAILMAN_ARCHIVE_WEB_EMAILOBSCURE='yes' # disable mailgrabbing in Pipermail MAILMAN_SERVER_LANG='de' # language MAILMAN_SENDER_ENVELOPE='yes' # use envelope-to: for sender determination MAILMAN_FORWARD_DISCARD='yes' # Forward discarded non-member mails to admin MAILMAN_ANONYMOUS_MAIL='no' # no: show real sender, yes: show List-admin MAILMAN_WEB_MEMBERADMIN='30' # number of Members to display in admin MAILMAN_WEB_DIR='mailman' # directory to call mailman MAILMAN_WEB_ARCHIVE_DIR='pipermail' # directory to call mailman archive MAILMAN_WEB_TEXTLIMIT='4096' # show ... bytes of a held msg (-1 entire) MAILMAN_WEB_ACCESS_CONTROL='all' # same as APACHE_ACCESS_CONTROL MAILMAN_CRON_ALIAS='yes' # Create new List aliases: yes or no MAILMAN_CRON_ALIAS_SCHEDULE='17 * * * *' # cron configuration string MAILMAN_CRON_PENDING='yes' # Pending Requests to Admin: yes or no MAILMAN_CRON_PENDING_SCHEDULE='0 8 * * *' # cron configuration string MAILMAN_CRON_DISABLED='yes' # hint to disabled members: yes or no MAILMAN_CRON_DISABLED_SCHEDULE='0 9 * * *' # cron configuration string MAILMAN_CRON_DIGEST='yes' # send digest: yes or no MAILMAN_CRON_DIGEST_SCHEDULE='59 23 * * *' # cron configuration string MAILMAN_CRON_PASSWORD='yes' # Send PW reminder: yes or no MAILMAN_CRON_PASSWORD_SCHEDULE='0 5 1 * *' # cron configuration string MAILMAN_CRON_NEWSGATE='yes' # News2mail: yes or no MAILMAN_CRON_NEWSGATE_SCHEDULE='*/5 * * * *' # cron configuration string MAILMAN_CRON_NEWSGATE_NNTPHOST='' # Newsserver ( :port if nessecary ) MAILMAN_CRON_NEWSGATE_NNTPUSER='' # Username if nessecary MAILMAN_CRON_NEWSGATE_NNTPPASS='' # Password if nessecary MAILMAN_CRON_ARCHIVE='yes' # Call Archive script: yes or no MAILMAN_CRON_ARCHIVE_SCHEDULE='27 4 * * *' # cron configuration string ### --------------------------------------------------------------------------- ### read old configuration and rename old variables ### --------------------------------------------------------------------------- rename_old_variables() { # read old values if [ -f /etc/config.d/${packages_name} ] then . /etc/config.d/${packages_name} fi } ### --------------------------------------------------------------------------- ### Write config and default files ### --------------------------------------------------------------------------- make_config_file() { internal_conf_file=${1} ( #-------------------------------------------------------------------------------- printgpl -conf "$packages_name" "2008-10-27" "schlotze" "2008 the eisfair team, team(at)eisfair(dot)org" #-------------------------------------------------------------------------------- #-------------------------------------------------------------------------------- printgroup "Basic configuration" #-------------------------------------------------------------------------------- printvar "START_MAILMAN" "Start service: yes or no" printvar "MAILMAN_DOMAIN_N" "Number of Domains to serve" idx=1 while [ "${idx}" -le "${MAILMAN_DOMAIN_N}" ] do printvar "MAILMAN_DOMAIN_${idx}" "1.st Domainname e.g. privacy.net" printvar "MAILMAN_DOMAIN_${idx}_IS_MAILHOST" "" idx=`/usr/bin/expr ${idx} + 1` done printvar "MAILMAN_ARCHIVE" "use archive" printvar "MAILMAN_ARCHIVE_PUBLIC" "if no: private Archive" printvar "MAILMAN_ARCHIVE_PUBLIC_MAIL" "if yes: MBOX publically available" printvar "MAILMAN_ARCHIVE_MBOX" "possible: -1 do nothing, 0 no mail, but web, 2 both mail and web" printvar "MAILMAN_ARCHIVE_FREQ" "0 year/1 month/2 Quarter/3 week/4 Day" printvar "MAILMAN_ARCHIVE_WEB_GZIP" "enable GZIP-archive for Download" printvar "MAILMAN_ARCHIVE_WEB_EMAILOBSCURE" "disable mailgrabbing in Pipermail" #-------------------------------------------------------------------------------- printgroup "some overall settings" #-------------------------------------------------------------------------------- printvar "MAILMAN_SERVER_LANG" "language" printvar "MAILMAN_SENDER_ENVELOPE" "use envelope-to: for sender determination" printvar "MAILMAN_FORWARD_DISCARD" "Forward discarded non-member mails to admin" printvar "MAILMAN_ANONYMOUS_MAIL" "no: show real sender, yes: show List-admin" #------------------------------------------------------------------------------ printgroup "some web settings" #------------------------------------------------------------------------------ printvar "MAILMAN_WEB_MEMBERADMIN" "number of Members to display in admin" printvar "MAILMAN_WEB_DIR" "directory to call mailman" printvar "MAILMAN_WEB_ARCHIVE_DIR" "directory to call mailman archive" printvar "MAILMAN_WEB_TEXTLIMIT" "show ... bytes of a held msg (-1 entire)" printvar "MAILMAN_WEB_ACCESS_CONTROL" "same as APACHE_ACCESS_CONTROL" #------------------------------------------------------------------------------ printgroup "mailman Cron jobs" #------------------------------------------------------------------------------ printvar "MAILMAN_CRON_ALIAS" "Create new List aliases: yes or no" printvar "MAILMAN_CRON_ALIAS_SCHEDULE" "cron configuration string" printvar "MAILMAN_CRON_PENDING" "Pending Requests to Admin: yes or no" printvar "MAILMAN_CRON_PENDING_SCHEDULE" "cron configuration string" printvar "MAILMAN_CRON_DISABLED" "hint to disabled members: yes or no" printvar "MAILMAN_CRON_DISABLED_SCHEDULE" "cron configuration string" printvar "MAILMAN_CRON_DIGEST" "send digest: yes or no" printvar "MAILMAN_CRON_DIGEST_SCHEDULE" "cron configuration string" printvar "MAILMAN_CRON_PASSWORD" "Send PW reminder: yes or no" printvar "MAILMAN_CRON_PASSWORD_SCHEDULE" "cron configuration string" printvar "MAILMAN_CRON_NEWSGATE" "News2mail: yes or no" printvar "MAILMAN_CRON_NEWSGATE_SCHEDULE" "cron configuration string" printvar "MAILMAN_CRON_NEWSGATE_NNTPHOST" "Newsserver ( :port if nessecary )" printvar "MAILMAN_CRON_NEWSGATE_NNTPUSER" "Username if nessecary" printvar "MAILMAN_CRON_NEWSGATE_NNTPPASS" "Password if nessecary" printvar "MAILMAN_CRON_ARCHIVE" "Call Archive script: yes or no" printvar "MAILMAN_CRON_ARCHIVE_SCHEDULE" "cron configuration string" #-------------------------------------------------------------------------------- printend #-------------------------------------------------------------------------------- ) > ${internal_conf_file} # Set rights chmod 0644 ${internal_conf_file} chown root ${internal_conf_file} } ### ------------------------------------------------------------------------- ### Create the check.d file ### ------------------------------------------------------------------------- make_check_file() { printgpl -check "$packages_name" "2008-10-27" "schlotze" "2008 the eisfair team, team(at)eisfair(dot)org" > /etc/check.d/${packages_name} cat >> /etc/check.d/${packages_name} << EOF # Variable OPT_VARIABLE VARIABLE_N VALUE START_MAILMAN - - YESNO MAILMAN_DOMAIN_N - - NUMERIC MAILMAN_DOMAIN_% - MAILMAN_DOMAIN_N NONE MAILMAN_DOMAIN_%_IS_MAILHOST - MAILMAN_DOMAIN_N YESNO MAILMAN_ARCHIVE - - YESNO MAILMAN_ARCHIVE_PUBLIC - - YESNO MAILMAN_ARCHIVE_PUBLIC_MAIL - - YESNO MAILMAN_ARCHIVE_MBOX - - NUMERIC MAILMAN_ARCHIVE_FREQ - - NUMERIC MAILMAN_ARCHIVE_WEB_GZIP - - YESNO MAILMAN_ARCHIVE_WEB_EMAILOBSCURE - - YESNO MAILMAN_SERVER_LANG - - NONE MAILMAN_SENDER_ENVELOPE - - YESNO MAILMAN_FORWARD_DISCARD - - YESNO MAILMAN_ANONYMOUS_MAIL - - YESNO MAILMAN_WEB_MEMBERADMIN - - NUMERIC MAILMAN_WEB_DIR - - NONE MAILMAN_WEB_ARCHIVE_DIR - - NONE MAILMAN_WEB_TEXTLIMIT - - NUMERIC MAILMAN_WEB_ACCESS_CONTROL - - NONE MAILMAN_CRON_ALIAS - - YESNO MAILMAN_CRON_ALIAS_SCHEDULE - - CRONTAB MAILMAN_CRON_PENDING - - YESNO MAILMAN_CRON_PENDING_SCHEDULE - - CRONTAB MAILMAN_CRON_DISABLED - - YESNO MAILMAN_CRON_DISABLED_SCHEDULE - - CRONTAB MAILMAN_CRON_DIGEST - - YESNO MAILMAN_CRON_DIGEST_SCHEDULE - - CRONTAB MAILMAN_CRON_PASSWORD - - YESNO MAILMAN_CRON_PASSWORD_SCHEDULE - - CRONTAB MAILMAN_CRON_NEWSGATE - - YESNO MAILMAN_CRON_NEWSGATE_SCHEDULE - - CRONTAB MAILMAN_CRON_NEWSGATE_NNTPHOST - - NONE MAILMAN_CRON_NEWSGATE_NNTPUSER - - NONE MAILMAN_CRON_NEWSGATE_NNTPPASS - - NONE MAILMAN_CRON_ARCHIVE - - YESNO MAILMAN_CRON_ARCHIVE_SCHEDULE - - CRONTAB EOF # Set rights for check.d file chmod 0644 /etc/check.d/${packages_name} chown root /etc/check.d/${packages_name} } ### --------------------------------------------------------------------------- ### Main ### --------------------------------------------------------------------------- # write default config file make_config_file /etc/default.d/${packages_name} # update from old version rename_old_variables # write new config file make_config_file /etc/config.d/${packages_name} # write check.d file make_check_file exit 0 ### --------------------------------------------------------------------------- ### End ###----------------------------------------------------------------------------