blob: 8df0bb8ec981fe6f3d9cb02bd1b24125d2da0eeb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#!/usr/bin/perl
# rpm helper scriptlet to remove a syslog entry (sysklogd and syslog-ng)
# $Id$
use strict;
main(@ARGV) unless caller();
sub main {
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;
open(my $fh, '<', '/etc/mandriva-release')
or die "can't open /etc/mandriva-release: $!";
my $line = <$fh>;
$line =~ /^Mandriva Linux release (\d\d\d\d\.\d)/;
my $release = $1;
close($fh);
if (version->parse($release) < version->parse("2010.1")) {
del_sysklogd_entry($package);
} else {
del_rsyslog_entry($package);
}
}
sub del_sysklogd_entry {
my ($package) = @_;
my $file = "/etc/syslog.conf";
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);
system(qw/service syslog condrestart/);
}
sub del_rsyslog_entry {
my ($package) = @_;
my $file = "/etc/rsyslog.d/$package.conf";
# check the file exists
return unless -f $file;
# check the file is the one created by package installation
open(my $in, '<', $file)
or die "Can't open $file for reading: $!";
my $line = <$in>;
close($in);
return if $line ne "# Automatically added by $package installation\n";
unlink $file
or die "Can't delete $file: $!";
system(qw/service rsyslog condrestart/);
}
1;
|