Code

patches/: Removed 01_debian_make_mlmmj-ml.
[pkg-mlmmj.git] / debian / mlmmj-make-ml
diff --git a/debian/mlmmj-make-ml b/debian/mlmmj-make-ml
new file mode 100644 (file)
index 0000000..ff59ef8
--- /dev/null
@@ -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."