aboutsummaryrefslogtreecommitdiffstats
path: root/del-syslog
blob: c280216bcfffaaeab553e0a9cf4a2aa1b055d3bf (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
#!/usr/bin/perl
# rpm helper scriptlet to remove a syslog entry (sysklogd and syslog-ng)
# $Id: del-syslog 271805 2011-01-25 14:57:43Z nanardon $
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;

    my $release_file = '/etc/release';
    open(my $fh, '<', $release_file)
        or die "can't open $release_file: $!";
    my $line = <$fh>;
    $line =~ /^Mageia release (\d\d\d\d\.\d)/;
    my $release = $1;
    close($fh);

        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('service syslog condrestart 2>&1 >/dev/null');
}

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('service rsyslog condrestart 2>&1 >/dev/null');
}

1;