diff options
Diffstat (limited to 'trunk/del-syslog')
-rwxr-xr-x | trunk/del-syslog | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/trunk/del-syslog b/trunk/del-syslog new file mode 100755 index 0000000..185b6ae --- /dev/null +++ b/trunk/del-syslog @@ -0,0 +1,44 @@ +#!/usr/bin/perl +# rpm helper scriptlet to remove a syslog entry (sysklogd and syslog-ng) +# $Id$ +use strict; + +die <<EOF if @ARGV < 2; +usage: $0 <pkg> <nb> +EOF +my ($package, $number) = @ARGV; + +# don't do anything for upgrade +exit(0) if $number == 1; + +if (-f '/etc/syslog.conf') { + del_syslog_entry($package, '/etc/syslog.conf'); + system(qw/service syslog condrestart/); +} + +if (-f '/etc/syslog-ng.conf') { + del_syslog_entry($package, '/etc/syslog-ng.conf'); + system(qw/service syslog-ng condrestart/); +} + +sub del_syslog_entry { + my ($package, $file) = @_; + + my $content; + open(my $in, '<', $file) + or die "Can't open $file for reading: $!"; + while (my $line = <$in>) { + if ($line =~ /^# BEGIN: Automatically added by $package installation$/) { + while ($line = <$in>) { + last if $line =~ /^# END$/; + } + } else { + $content .= $line; + } + } + + open(my $out, '>', $file) + or die "Can't open $file for writing: $!"; + print $out $content; + close($out); +} |