3 # Import a mailing list from a user.
5 # This must be run as root.
8 ARCHIVEDIR
=$MMDIR/archives
14 echo >&2 "Usage: import-list [--new] [--archive MBOX-FILE]" \
16 echo >&2 " [--domain DOMAIN] [--url WEB-PAGE-URL] LIST"
20 if test -z "$1" ||
test -n "$2"; then
21 echo "Programmer error"
27 mkdir
$MMDIR/lists
/$LIST
28 chown list
:list
$MMDIR/lists
/$LIST
29 chmod g
+rwx
$MMDIR/lists
/$LIST
31 mkdir
$MMDIR/archives
/private
/$LIST
32 chown list
:list
$MMDIR/archives
/private
/$LIST
33 chmod g
+rwx
$MMDIR/archives
/private
/$LIST
35 echo "Created list $LIST"
39 if test "$UID" != "0"; then
40 echo "This program must be run as root"
52 while test "forever"; do
53 if test "$1" = "--archive"; then
57 elif test "$1" = "--conf"; then
62 elif test "$1" = "--domain"; then
67 elif test "$1" = "--help"; then
70 elif test "$1" = "--new"; then
74 elif test "$1" = "--url"; then
85 echo "Not enough arguments"
88 elif test -n "$2"; then
89 echo "Too many arguments"
96 # Create list if --new passed
97 if test "$NEW" = "y"; then
101 # Check to see whether list exists yet
102 if test ! -d $LISTDIR/$LIST; then
103 echo "List $LIST does not exist yet. Please make it using the" \
108 # Make working directory
109 if test ! -d $WORKDIR; then
111 chown list
:list
$WORKDIR
112 chmod ug
=rwX
,o
= $WORKDIR
115 # Import configuration
116 if test -n "$CONF"; then
117 echo "Importing list configuration ..."
118 cp $CONF $WORKDIR/$LIST.cfg
119 chown list
:list
$WORKDIR/$LIST.cfg
120 chmod u
=rw
,g
=rw
,o
= $WORKDIR/$LIST.cfg
121 mv $WORKDIR/$LIST.cfg
$LISTDIR/$LIST/config.pck
125 # Change domain for accepting email
126 if test -n "$DOM"; then
127 echo "Changing email domain for $LIST to $DOM ..."
128 echo "host_name = '$DOM'" > $WORKDIR/$LIST.cfg
129 chown list
:list
$WORKDIR/$LIST.cfg
130 sudo
-u list
$BINDIR/config_list
-i $WORKDIR/$LIST.cfg
$LIST
131 rm -f $WORKDIR/$LIST.cfg
135 # Change URL for web interface
136 if test -n "$URL"; then
137 echo "Changing web page URL for $LIST to $URL ..."
138 echo "web_page_url = '$URL'" > $WORKDIR/$LIST.cfg
139 chown list
:list
$WORKDIR/$LIST.cfg
140 sudo
-u list
$BINDIR/config_list
-i $WORKDIR/$LIST.cfg
$LIST
141 rm -f $WORKDIR/$LIST.cfg
145 # Import list archives
146 if test -n "$ARCH"; then
147 echo "Importing list archives ..."
148 cp $ARCH $WORKDIR/$LIST.mbox
149 rm -fr $ARCHIVEDIR/private
/$LIST.mbox
150 mkdir
$ARCHIVEDIR/private
/$LIST.mbox
151 mv $WORKDIR/$LIST.mbox
$ARCHIVEDIR/private
/$LIST.mbox
152 chown
-R list
:list
$ARCHIVEDIR/private
/$LIST.mbox
153 chmod ug
=rw
,o
=r
$ARCHIVEDIR/private
/$LIST.mbox
/$LIST.mbox
154 sudo
-u list
$BINDIR/arch
--quiet --wipe $LIST
158 echo "Reloading mailman ..."
159 /etc
/init.d
/mailman reload
162 if test -n "$CONF" ||
test -n "$DOM"; then
163 echo "Updating mailman definitions for Exim ..."
164 /afs
/hcoop.net
/common
/etc
/scripts
/mailman-update-exim-db
168 echo "Sucessfully imported list $LIST"