summaryrefslogtreecommitdiff
path: root/mailman/mklist.pl
blob: a3bdfcd29e0e8baa54528d17d4e82dc01c4169bb (plain)
  1. #!/usr/bin/perl
  2. # TODO: derive listname from subjectprefix (which allows space and [])
  3. use warnings;
  4. our ($listname, $listdesc, $listhost, $senders, $senderfilter, $listowner);
  5. my $config_file_addon_org="/etc/local-ORG/mailman/mklist.conf.addon";
  6. if ( -f $config_file_addon_org ) {
  7. do $config_file_addon_org or die "Error in config file $config_file_addon_org: $@";
  8. } else {
  9. warn "Ignoring non-existing file $config_file_addon_org";
  10. }
  11. $listname ||= $ENV{'LISTNAME'} or die "LISTNAME missing";
  12. $listdesc ||= $ENV{'LISTDESC'} or die "LISTDESC missing";
  13. $listhost ||= $ENV{'LISTHOST'} or die "LISTHOST missing";
  14. $senders ||= $ENV{'SENDERS'} or die "SENDERS missing";
  15. $senderfilter ||= $ENV{'SENDERFILTER'} or die "SENDERFILTER missing";
  16. $listowner ||= $ENV{'LISTOWNER'} or die "LISTOWNER missing";
  17. while (<>) {
  18. # Replace keywords - execept in comments
  19. s/^([^#]*)LISTNAME/$1$listname/g;
  20. s/^([^#]*)LISTDESC/$1$listdesc/g;
  21. s/^([^#]*)LISTHOST/$1$listhost/g;
  22. s/^([^#]*)SENDERS/$1$senders/g;
  23. s/^([^#]*)SENDERFILTER/$1$senderfilter/g;
  24. s/^([^#]*)LISTOWNER/$1$listowner/g;
  25. print;
  26. }
  27. 1;