Mercurial > hg > mlmmj
diff src/mlmmj-make-ml.in @ 749:fdc57c9e5f56
Remove .sh from mlmmj-make-ml.sh; symlink original name
author | Ben Schmidt |
---|---|
date | Sun, 03 Oct 2010 22:12:33 +1100 |
parents | src/mlmmj-make-ml.sh.in@dfc9ab125fd4 |
children | 3c4d1e8bc452 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mlmmj-make-ml.in Sun Oct 03 22:12:33 2010 +1100 @@ -0,0 +1,184 @@ +#!/bin/sh +# +# mlmmj-make-ml - henne@hennevogel.de +# + +VERSION="0.1" +DEFAULTDIR="/var/spool/mlmmj" +ALIASFILE=/etc/aliases + +USAGE="mlmmj-make-ml "$VERSION" +"$0" [OPTIONS] + +-h display this help text +-L the name of the mailinglist +-s your spool directory if not "$DEFAULTDIR" +-a create the needed entrys in your $ALIASFILE file +-z nuffn for now +-c chown the spool dir" + +while getopts ":hL:s:azc:" Option +do +case "$Option" in + h ) + echo -e "$USAGE" + exit 0 + ;; + z ) + echo -n "nothing" + exit 0 + ;; + L ) + LISTNAME="$OPTARG" + ;; + s ) + SPOOLDIR="$OPTARG" + ;; + a ) + A_CREATE="YES" + ;; + c ) + DO_CHOWN=1 + CHOWN="$OPTARG" + ;; + * ) + echo -e "$0: invalid option\nTry $0 -h for more information." + exit 1 +esac +done +SHIFTVAL=$((OPTIND-1)) +shift $SHIFTVAL + +if [ -z "$SPOOLDIR" ]; then + SPOOLDIR="$DEFAULTDIR" +fi + +echo "Creating Directorys below $SPOOLDIR. Use '-s spooldir' to change" + +if [ -z "$LISTNAME" ]; then + echo -n "What should the name of the Mailinglist be? [mlmmj-test] : " + read LISTNAME + if [ -z "$LISTNAME" ]; then + LISTNAME="mlmmj-test" + fi +fi + +LISTDIR="$SPOOLDIR/$LISTNAME" + +mkdir -p $LISTDIR + +for DIR in incoming queue queue/discarded archive text subconf unsubconf \ + bounce control moderation subscribers.d digesters.d requeue \ + nomailsubs.d +do + mkdir "$LISTDIR"/"$DIR" +done + +test -f "$LISTDIR"/index || touch "$LISTDIR"/index + +echo -n "The Domain for the List? [] : " +read FQDN +if [ -z "$FQDN" ]; then + FQDN=`domainname -f` +fi + +echo -n "The emailaddress of the list owner? [postmaster] : " +read OWNER +if [ -z "$OWNER" ]; then + OWNER="postmaster" +fi +echo "$OWNER" > "$LISTDIR"/"control/owner" + +( + cd "@textlibdir@" + echo + echo "For the list texts you can choose between the following languages or" + echo "give a absolute path to a directory containing the texts." + echo + echo "Available languages:" + ls + + TEXTPATHDEF=en + echo -n "The path to texts for the list? [$TEXTPATHDEF] : " + read TEXTPATHIN + if [ -z "$TEXTPATHIN" ] ; then + TEXTPATH="$TEXTPATHDEF" + else + TEXTPATH="$TEXTPATHIN" + fi + if [ ! -d "$TEXTPATH" ]; then + echo + echo "**NOTE** Could not copy the texts for the list" + echo "Please manually copy the files from the listtexts/ directory" + echo "in the source distribution of mlmmj." + sleep 2 + else + cp "$TEXTPATH"/* "$LISTDIR"/"text" + fi +) + +LISTADDRESS="$LISTNAME@$FQDN" +echo "$LISTADDRESS" > "$LISTDIR"/control/"listaddress" + +MLMMJRECEIVE=`which mlmmj-receive 2>/dev/null` +if [ -z "$MLMMJRECEIVE" ]; then + MLMMJRECEIVE="/path/to/mlmmj-receive" +fi + +MLMMJMAINTD=`which mlmmj-maintd 2>/dev/null` +if [ -z "$MLMMJMAINTD" ]; then + MLMMJMAINTD="/path/to/mlmmj-maintd" +fi + +ALIAS="$LISTNAME: \"|$MLMMJRECEIVE -L $SPOOLDIR/$LISTNAME/\"" +CRONENTRY="0 */2 * * * \"$MLMMJMAINTD -F -L $SPOOLDIR/$LISTNAME/\"" + +if [ -n "$A_CREATE" ]; then + echo "I want to add the following to your $ALIASFILE file:" + echo "$ALIAS" + + echo -n "is this ok? [y/N] : " + read OKIDOKI + case $OKIDOKI in + y|Y) + echo "$ALIAS" >> $ALIASFILE + ;; + n|N) + exit 0 + ;; + *) + echo "Options was: y, Y, n or N" + esac +else + echo + echo "Don't forget to add this to $ALIASFILE:" + echo "$ALIAS" +fi + +if [ "$DO_CHOWN" ] ; then + echo + echo -n "chown -R $CHOWN $SPOOLDIR/$LISTNAME? [y/n]: " + read OKIDOKI + case $OKIDOKI in + y|Y) + chown -R $CHOWN $SPOOLDIR/$LISTNAME + ;; + n|N) + exit 0 + ;; + *) + echo "option is: y, Y, n, N" + ;; + esac +fi + +echo +echo "If you're not starting mlmmj-maintd in daemon mode," +echo "don't forget to add this to your crontab:" +echo "$CRONENTRY" + +echo +echo " ** FINAL NOTES ** +1) The mailinglist directory have to be owned by the user running the +mailserver (i.e. starting the binaries to work the list) +2) Run newaliases"