#!/usr/bin/perl -w #---------------------------------------------------------------------- # copyright (C) 2002-2006 Mitel Networks Corporation # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #---------------------------------------------------------------------- package esmith; use strict; use Errno; use esmith::ConfigDB; use esmith::AccountsDB; use esmith::util; use esmith::DB 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 @mailaliases; if ($ARGV[1]) { my $mailalias = $ARGV [1]; my $g = $a->get($mailalias) || die "Mailalias $mailalias not found in accounts db\n"; my $type = $g->prop('type'); if ($type =~ /^mailalias/) { @mailaliases = ($g); } else { die "Expected a mailalias. Got: $type\n"; } } # Regenerate all the groups if the previous block failed in some way. unless (@mailaliases) { #@mailaliases = $a->mailalias; # a faire ? @mailaliases = $a->get_all_by_prop('type'=>'mailalias'); # a faire ? } foreach my $mailalias (@mailaliases) { my $mailaliasName = $mailalias->key; unless ($mailalias->prop('type') eq 'mailalias') { warn "Account $mailaliasName is not a mailalias account.\n"; next; } my %properties = $mailalias->props; $mailaliasName =~ s/\./:/g; #my $group = "/var/qmail/alias/.qmail-$groupName"; my $members = $properties{email}; esmith::util::processTemplate( { CONFREF => { Members => $members, }, TEMPLATE_PATH => "/var/qmail/alias/.qmail-mailalias", OUTPUT_FILENAME => "/var/qmail/alias/.qmail-$mailaliasName", } ); unless (-f "/var/qmail/alias/.qmail-$mailaliasName-default") { symlink "/var/qmail/alias/.qmail-$mailaliasName", "/var/qmail/alias/.qmail-$mailaliasName-default"; } } exit (0);