summaryrefslogtreecommitdiff
path: root/mailman/mklist.inc
blob: 956a4b215decb31083d028fd8ab5c960c81fda5e (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. LISTDOMAIN="$listdomain"
  8. LISTWEBDOMAIN="$listwebdomain"
  9. OWNER="${owner:-listmaster@$MAILDOMAIN}"
  10. LISTLANG="${lang:-en}"
  11. refreshlists() {
  12. existinglists="`/usr/sbin/list_lists -b`"
  13. }
  14. mklist() {
  15. list_anycase="$1"; shift
  16. type="$1"; shift
  17. desc="$1"; shift
  18. senders="$1"; shift
  19. list=$(printf %s "$list_anycase" | tr '[:upper:]' '[:lower:]')
  20. lang="${1:-$LISTLANG}"
  21. owner="${2:-$OWNER}"
  22. emailhost="${3:-$LISTDOMAIN}"
  23. urlhost="${4:-${LISTWEBDOMAIN:-$emailhost}}"
  24. if ! echo "$existinglists" | grep -q "^$list\$"; then
  25. newlist -l "$lang"${urlhost:+ -u "$urlhost"}${emailhost:+ -e "$emailhost"} -q "$list" "$owner" "`gpw | head -n 1`"
  26. fi
  27. LISTNAME="$list_anycase" LISTDESC="$desc" SENDERS="$senders" LISTOWNER="$owner" LISTHOST="$emailhost" "$sharedir/mklist.pl" "$skeldir/$type.$lang.py" > "$list.py"
  28. config_list -i "$cfgdir/$list.py" "$list"
  29. config_list -o "$cfgdir/$list.py" "$list"
  30. }
  31. populatelist() {
  32. list=$(printf %s "$1" | tr '[:upper:]' '[:lower:]'); shift
  33. [ ! -s "$cfgdir/$list.members" ] || add_members -r "$cfgdir/$list.members" -w n -a n "$list"
  34. [ ! -s "$cfgdir/$list.members-digest" ] || add_members -d "$cfgdir/$list.members-digest" -w n -a n "$list"
  35. [ -z "$*" ] || localuserinfo --custom='%fullname% <%mailaddress%>' "$@" | add_members -r - -w n -a n "$list"
  36. list_members --fullnames --preserve --regular -o "$cfgdir/$list.members" "$list"
  37. list_members --fullnames --preserve --digest -o "$cfgdir/$list.members-digest" "$list"
  38. }