b85c4e3b |
1 | #!/bin/bash |
2 | # |
3 | # Change a mailing list's web page URL. |
4 | # |
5 | # This must be run as root. |
6 | |
7 | MMDIR=/var/lib/mailman |
8 | BINDIR=$MMDIR/bin |
9 | LISTDIR=$MMDIR/lists |
10 | WORKDIR=/tmp/mmdir |
11 | |
12 | function usage() { |
13 | echo "Usage: change-list-url LIST WEBURL [BASEURL]" |
14 | } |
15 | |
16 | # Argument check |
17 | if test -z "$2"; then |
18 | echo "Not enough arguments" |
19 | usage |
20 | exit 1 |
21 | elif test -n "$4"; then |
22 | echo "Too many arguments" |
23 | usage |
24 | exit 1 |
25 | else |
26 | LIST=$1 |
27 | WEBURL=$2 |
28 | BASEURL=$3 |
29 | fi |
30 | |
31 | # Check list existence |
32 | if test ! -d $LISTDIR/$LIST; then |
33 | echo "List $LIST does not exist" |
34 | exit 1 |
35 | fi |
36 | |
37 | # Make working directory |
38 | if test ! -d $WORKDIR; then |
39 | mkdir -p $WORKDIR |
40 | chown list:list $WORKDIR |
41 | chmod ug=rwX,o= $WORKDIR |
42 | fi |
43 | |
44 | # Change URL |
45 | echo "web_page_url = '$WEBURL'" > $WORKDIR/$LIST.cfg |
46 | if test -n "$BASEURL"; then |
47 | echo "host_name = '$BASEURL'" >> $WORKDIR/$LIST.cfg |
48 | fi |
49 | chown list:list $WORKDIR/$LIST.cfg |
50 | sudo -u list $BINDIR/config_list -i $WORKDIR/$LIST.cfg $LIST |
51 | rm -f $WORKDIR/$LIST.cfg |
52 | |
53 | echo |
54 | echo "Changed web page URL for $LIST to $WEBURL" |
55 | if test -n "$BASEURL"; then |
56 | echo " and also base URL to $BASEURL" |
57 | fi |
58 | |
59 | echo "Updating mailman definitions for Exim ..." |
60 | /afs/hcoop.net/common/etc/scripts/mailman-update-exim-db |