#!/usr/bin/perl -w -I/usr/local/raqdevil/perl # # $Id: sa.pl,v 1.3 2005/12/13 20:09:31 dodell Exp $ use Sauce::Util; use Sauce::Config; use CCE; use FileHandle; use File::Path; use I18n; my $DEBUG = 0; # connect: my $cce = new CCE(Domain => 'base-user'); $cce->connectfd(); my $i18n = new I18n; # retrieve info my ($success, $new, $old) = $cce->get($cce->event_oid()); my @pwent = getpwnam($new->{name}); my $homedir = $pwent[7]; $procmailrc = $homedir . '/.procmailrc'; if (!Sauce::Util::editfile($procmailrc, *edit_procmailrc, $new)) { $cce->bye('FAIL', "Can't edit $procmailrc"); } sub edit_procmailrc { my ($in, $out, $new) = @_; my $begin = '# BEGIN SpamAssassin SECTION. DO NOT EDIT MARKS OR IN BETWEEN.'; my $end = '# END SpamAssassin SECTION. DO NOT EDIT MARKS OR IN BETWEEN.'; my $dropprivs = 'DROPPRIVS=yes'; my $saconf = <) { if (/^$dropprivs$/) { next; } if (/^$begin$/) { if ($new->{saEnabled} == 0) { while(<$in>) { if (/^$end$/) { last; } } } } else { print $out $_; } } if ($new->{saEnabled} == 1) { print $out $begin, "\n"; print $out $saconf, "\n"; print $out $end, "\n"; } return 1; } # all done $cce->bye("SUCCESS"); exit(0);