#! /bin/sh /usr/share/dpatch/dpatch-run ## 01_debian_make_mlmmj-ml.dpatch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: This patch adds a new mlmmj-make-ml @DPATCH@ diff -urNad --exclude=CVS --exclude=.svn ./debian/mlmmj-make-ml.sh /tmp/dpep-work.l7evJe/mlmmj-1.2.8/debian/mlmmj-make-ml.sh --- ./debian/mlmmj-make-ml.sh 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/dpep-work.l7evJe/mlmmj-1.2.8/debian/mlmmj-make-ml.sh 2005-09-10 21:33:20.000000000 +0200 @@ -0,0 +1,201 @@ +#!/bin/sh +# +# mlmmj-make-ml.sh - henne@hennevogel.de +# +# modified for Debian GNU/Linux by boll@debian.org + +VERSION="0.1-debian (Modified for Debian GNU/Linux)" +DEFAULTDIR="/var/spool/mlmmj" +ETCDEFAULTDIR="/etc/mlmmj/lists" +TEXTPATH="/usr/share/mlmmj/text.skel" +SENDMAILPKG=`grep-dctrl -FProvides mail-transport-agent -a -FStatus installed -sPackage -n /var/lib/dpkg/status` +NEWALIASES=`which newaliases` + +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 +-z nuffn for now +" + +echo +echo "+------------------------------------------------------------+" +echo "| Information: |" +echo "| Please report bugs against mlmmj-make-ml to the Debian BTS |" +echo "| at http://bugs.debian.org/ |" +echo "+------------------------------------------------------------+" +echo + + +while getopts ":hL:s:az:" Option +do +case "$Option" in + h ) + echo "$USAGE" + exit 0 + ;; + z ) + echo -n "nothing" + exit 0 + ;; + L ) + LISTNAME="$OPTARG" + ;; + s ) + SPOOLDIR="$OPTARG" + ;; + * ) + printf "$0: invalid option\nTry $0 -h for more information.\n" + 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" +ETCLISTDIR="$ETCDEFAULTDIR/$LISTNAME" + +mkdir -p $LISTDIR +mkdir -p $ETCLISTDIR + +for DIR in incoming queue queue/discarded archive subconf unsubconf \ + bounce moderation subscribers.d digesters.d requeue \ + nomailsubs.d +do + mkdir "$LISTDIR"/"$DIR" +done + +for DIR in text control +do + mkdir "$ETCLISTDIR"/"$DIR" + ln -s "$ETCLISTDIR"/"$DIR" "$LISTDIR"/"$DIR" +done + +test -f "$LISTDIR"/index || touch "$LISTDIR"/index + +echo -n "The Domain for the List? [] : " +read FQDN +if [ -z "$FQDN" ]; then + FQDN="localhost.localdomain" +fi + +echo -n "The emailaddress of the list owner? [postmaster] : " +read OWNER +if [ -z "$OWNER" ]; then + OWNER="postmaster" +fi +echo "$OWNER" > "$ETCLISTDIR"/"control/owner" + +if [ -z "$TEXTPATH" -o ! -d "$TEXTPATH" ]; then + echo "**NOTE** Could not copy the texts for the list" + echo "Please manually copy the files from $TEXTPATH" +else + cp "$TEXTPATH"/* "$ETCLISTDIR"/"text" +fi + +LISTADDRESS="$LISTNAME@$FQDN" +echo "$LISTADDRESS" > "$ETCLISTDIR"/control/"listaddress" + +MLMMJRECIEVE=`which mlmmj-recieve 2>/dev/null` +if [ -z "$MLMMJRECIEVE" ]; then + MLMMJRECIEVE="/usr/bin/mlmmj-recieve" +fi + +MLMMJMAINTD=`which mlmmj-maintd 2>/dev/null` +if [ -z "$MLMMJMAINTD" ]; then + MLMMJMAINTD="/usr/bin/mlmmj-maintd" +fi + +ALIAS="$LISTNAME: \"|$MLMMJRECIEVE -L $SPOOLDIR/$LISTNAME/\"" + +echo "I am adding the following to your /etc/aliases file:" +echo "$ALIAS" +echo -n "is this ok (if not, you need to do so yourself)? [y/N] : " +read OKIDOKI +case $OKIDOKI in + y|Y) + echo "$ALIAS" >> /etc/aliases + ;; + n|N) + exit 0 + ;; + *) + echo "Options were: y, Y, n or N" +esac + +echo "Detecting the installed MTA and changing ownership as needed..." + +if [ "$SENDMAILPKG" = "postfix" ]; then + USER="nobody" + GROUP="nogroup" + echo "Postfix appears to be handling your mail, using ownership $USER:$GROUP..." +elif [ "$SENDMAILPKG" = "exim4-daemon-light" ]; then + USER="Debian-exim" + GROUP="Debian-exim" + echo "Exim appears to be handling your mail, using ownership $USER:$GROUP..." +else + USER="nobody" + GROUP="nogroup" + echo "Unable to detect MTA, using default ownership: $USER:$GROUP..." +fi + +chown -R $USER:$GROUP $LISTDIR $LISTDIR/* +chmod -R 755 $LISTDIR +chmod -R 755 $ETCLISTDIR + +# Check if all lists are owned by the right user, if not, ask if we should fix +# it. + +ANOMALIES=0 + +for ENTRY in `ls $SPOOLDIR` +do + SOWNER=`stat -c %U $SPOOLDIR/$ENTRY` + SGROUP=`stat -c %G $SPOOLDIR/$ENTRY` + + if [ $SOWNER != $USER -o $SGROUP != $GROUP ] + then + ANOMALIES=1 + fi +done + +if [ $ANOMALIES -eq 1 ] + then + echo -n "It appears that not all lists have proper ownership, do you want me to fix this? [y/N] : " + read FIXOWNERSHIP + case $FIXOWNERSHIP in + y|Y) + chown -R $USER:$GROUP $SPOOLDIR/* + + ;; + n|N) + echo "Not fixing ownership" + ;; + *) + echo "Options were: y, Y, n or N" + esac + + +fi + +echo "Running $NEWALIASES" +$NEWALIASES + +echo "Done."