smeserver-minilist/root/etc/e-smith/events/actions/qmail-update-list

54 lines
1.2 KiB
Perl

#!/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;
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);