Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > e28667f4e1cf50e0b002c8a83e0e0d6f > files > 181

logwatch-7.3.6-2mdv2008.1.noarch.rpm

# Copyright 2006 by Willi Mann <willi@wm1.at>
###########################################################################
# $Id: dpkg,v 1.2 2007/02/16 04:15:52 bjorn Exp $
###########################################################################
# $Log: dpkg,v $
# Revision 1.2  2007/02/16 04:15:52  bjorn
# Using default license for Logwatch, per Willi Mann.
#
# Revision 1.1  2006/12/15 04:39:22  bjorn
# New dpkg scripts, by Willi Mann.
#
###########################################################################
#
#

use strict;

my @install;
my @upgrade;
my @remove;
my @purge;

my @unknown;

while(my $line=<STDIN>) {
	chomp $line;
	if ( my ( $do, $pkg, $ver1, $ver2) = ( $line =~ /^\S+ \S+ (install|upgrade|remove|purge) (\S+) (\S+)(?: (\S+))?/ )) {
		if(($do eq "remove" or $do eq "purge") and ($ver1 ne $ver2)) {
			push @unknown, $line;
		} elsif ($do eq "remove") {
			push @remove, "$pkg $ver1";
		} elsif ( $do eq "purge") {
			push @purge, "$pkg $ver1";
		} elsif ($ver1 =~ /[<>]/) {
			push @install, "$pkg $ver2";
		} else {
			push @upgrade, "$pkg $ver1 => $ver2";
		}
	} elsif ( $line =~ /^\S+ \S+ status / ) {
		#ignore
	} else {
		push @unknown, $line;
	}
}

my @k = ( "Installed" , \@install, 
          "Upgraded" , \@upgrade, 
	  "Removed", \@remove, 
	  "Purged", \@purge, 
	  "Unknown lines", \@unknown);

while (@k > 0) {
	my $text = shift @k;
	my $array = shift @k;
	if(@$array) {
		print "\n$text:\n";
		foreach my $line (sort @$array) {
			print "   $line\n";
		}

	}
}
# vi: shiftwidth=3 tabstop=3 syntax=perl et