summaryrefslogtreecommitdiff
path: root/mailman/mklist.inc
diff options
context:
space:
mode:
Diffstat (limited to 'mailman/mklist.inc')
-rw-r--r--mailman/mklist.inc39
1 files changed, 39 insertions, 0 deletions
diff --git a/mailman/mklist.inc b/mailman/mklist.inc
new file mode 100644
index 0000000..3d25d49
--- /dev/null
+++ b/mailman/mklist.inc
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+set -e
+
+cfgdir="/etc/local-ORG/mailman"
+sharedir="/etc/local-COMMON/mailman"
+skeldir="$sharedir/skel"
+
+MAILDOMAIN="${maildomain:-`head -n 1 /etc/mailname`}"
+LISTDOMAIN="${listdomain:-lists.$MAILDOMAIN}"
+OWNER="${owner:-listmaster@$MAILDOMAIN}"
+LANG="${lang:-en}"
+
+refreshlists() {
+ existinglists="`/usr/sbin/list_lists -b`"
+}
+
+mklist() {
+ list="$1"; shift
+ type="$1"; shift
+ desc="$1"; shift
+ lang="${1:-$LANG}"
+ owner="${2:-$OWNER}"
+
+ if ! echo "$existinglists" | grep -q "^$list\$"; then
+ newlist -l "$lang" -q "$list" "$owner" "`gpw | head -n 1`"
+ fi
+ LISTNAME="$list" LISTDESC="$desc" LISTOWNER="$owner" "$sharedir/mklist.pl" "$skeldir/$type.$lang.py" > "$list.py"
+ config_list -i "$cfgdir/$list.py" "$list"
+ config_list -o "$cfgdir/$list.py" "$list"
+}
+
+populatelist() {
+ list="$1"; shift
+
+ [ ! -f "$cfgdir/$list.members" ] || add_members -r "$cfgdir/$list.members" -w n -a n "$list"
+ localuserinfo --custom='%fullname% <%mailaddress%>' "$@" | add_members -r - -w n -a n "$list"
+ list_members --fullnames --preserve -o "$cfgdir/$list.members" "$list"
+}