--- /dev/null
+#!/bin/bash
+#
+# Change a mailing list's web page URL.
+#
+# This must be run as root.
+
+MMDIR=/var/lib/mailman
+BINDIR=$MMDIR/bin
+LISTDIR=$MMDIR/lists
+WORKDIR=/tmp/mmdir
+
+function usage() {
+ echo "Usage: change-list-url LIST WEBURL [BASEURL]"
+}
+
+# Argument check
+if test -z "$2"; then
+ echo "Not enough arguments"
+ usage
+ exit 1
+elif test -n "$4"; then
+ echo "Too many arguments"
+ usage
+ exit 1
+else
+ LIST=$1
+ WEBURL=$2
+ BASEURL=$3
+fi
+
+# Check list existence
+if test ! -d $LISTDIR/$LIST; then
+ echo "List $LIST does not exist"
+ exit 1
+fi
+
+# Make working directory
+if test ! -d $WORKDIR; then
+ mkdir -p $WORKDIR
+ chown list:list $WORKDIR
+ chmod ug=rwX,o= $WORKDIR
+fi
+
+# Change URL
+echo "web_page_url = '$WEBURL'" > $WORKDIR/$LIST.cfg
+if test -n "$BASEURL"; then
+ echo "host_name = '$BASEURL'" >> $WORKDIR/$LIST.cfg
+fi
+chown list:list $WORKDIR/$LIST.cfg
+sudo -u list $BINDIR/config_list -i $WORKDIR/$LIST.cfg $LIST
+rm -f $WORKDIR/$LIST.cfg
+
+echo
+echo "Changed web page URL for $LIST to $WEBURL"
+if test -n "$BASEURL"; then
+ echo " and also base URL to $BASEURL"
+fi
+
+echo "Updating mailman definitions for Exim ..."
+/afs/hcoop.net/common/etc/scripts/mailman-update-exim-db
# Usage: listnew LISTNAME LISTDOMAIN USER RANDOM_PASSWORD
BIN=/var/lib/mailman/bin
+DEFAULT_URL=https://lists.hcoop.net
sudo -u list $BIN/newlist $1@$2 $3@hcoop.net $4 </dev/null
-echo "Updating mailman definitions for Exim ..."
-/afs/hcoop.net/common/etc/scripts/mailman-update-exim-db
+# By default, use our list admin website for the public interface.
+# This can be changed after the user has set up their mailMan
+# directive. We do this because the default is
+# http://lists.hcoop.net, without SSL, which makes list admin not work
+# at all.
+/afs/hcoop.net/common/etc/scripts/change-list-url $1 $DEFAULT_URL
-echo "Sucessfully imported list $1"
+echo "Sucessfully created list $1"