#!/usr/bin/perl -w package esmith; use strict; use Errno; use esmith::ConfigDB; use esmith::AccountsDB; use esmith::util; my $c = esmith::ConfigDB->open_ro || die "Couldn't open config db\n"; my $a = esmith::AccountsDB->open_ro || die "Couldn't open accounts db\n"; my $event = $ARGV [0] || die "Event name arg missing\n";; my @lists; if ($ARGV[1]){ @lists = $a->get($ARGV[1]); } @lists = $a->get_all_by_prop(type=>'minilist') if (scalar @lists lt 1); foreach my $list (@lists){ my $name = $list->key; # dots must be escaped by replacing them with a : # see http://www.lifewithqmail.com/lwq.html#dots-in-extensions $name =~ s/\./:/g; unless ($list->prop('type') eq 'minilist'){ warn "Account $name is not a mailinglist account.\n"; next; } my $members = $list->prop('Members') || ''; esmith::util::processTemplate( { CONFREF => { Members => $members, }, TEMPLATE_PATH => "/var/qmail/alias/.qmail-group", OUTPUT_FILENAME => "/var/qmail/alias/.qmail-$name", } ); unless (-f "/var/qmail/alias/.qmail-$name-default"){ symlink "/var/qmail/alias/.qmail-$name", "/var/qmail/alias/.qmail-$name-default"; } } exit (0);