summaryrefslogtreecommitdiff
path: root/mailman/mklist.inc
blob: 3c38c60360d7601de5dc0be238c7f436f82b6fa0 (plain)
  1. #!/bin/sh
  2. set -e
  3. cfgdir="/etc/local-ORG/mailman"
  4. sharedir="/etc/local-COMMON/mailman"
  5. skeldir="$sharedir/skel"
  6. MAILDOMAIN="${maildomain:-`head -n 1 /etc/mailname`}"
  7. OWNER="${owner:-listmaster@$MAILDOMAIN}"
  8. LANG="${lang:-en}"
  9. refreshlists() {
  10. existinglists="`/usr/sbin/list_lists -b`"
  11. }
  12. mklist() {
  13. list="$1"; shift
  14. type="$1"; shift
  15. desc="$1"; shift
  16. lang="${1:-$LANG}"
  17. owner="${2:-$OWNER}"
  18. emailhost="$3"
  19. urlhost="$4"
  20. if ! echo "$existinglists" | grep -q "^$list\$"; then
  21. newlist -l "$lang" -q "$list" ${emailhost:+-e "$emailhost"} ${urlhost:+-u "$urlhost"} "$owner" "`gpw | head -n 1`"
  22. fi
  23. LISTNAME="$list" LISTDESC="$desc" LISTOWNER="$owner" ${emailhost:+LISTHOST="$emailhost"} "$sharedir/mklist.pl" "$skeldir/$type.$lang.py" > "$list.py"
  24. config_list -i "$cfgdir/$list.py" "$list"
  25. config_list -o "$cfgdir/$list.py" "$list"
  26. }
  27. populatelist() {
  28. list="$1"; shift
  29. [ ! -f "$cfgdir/$list.members" ] || add_members -r "$cfgdir/$list.members" -w n -a n "$list"
  30. [ -z "$*" ] || localuserinfo --custom='%fullname% <%mailaddress%>' "$@" | add_members -r - -w n -a n "$list"
  31. list_members --fullnames --preserve -o "$cfgdir/$list.members" "$list"
  32. }