2002-12-11 23:57:00 +03:00
|
|
|
#! @PERL@
|
1999-01-20 02:34:50 +03:00
|
|
|
#
|
|
|
|
# Written by Balazs Nagy (julian7@kva.hu) 1998
|
2000-03-28 14:49:26 +04:00
|
|
|
# locale bugfix by Michal Svec (rebel@penguin.cz) 2000
|
1999-01-20 02:34:50 +03:00
|
|
|
# (C) 1998 The Free Software Foundation.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
|
2000-03-28 14:49:26 +04:00
|
|
|
# override any locale for dates
|
|
|
|
delete $ENV{"LC_ALL"};
|
|
|
|
$ENV{"LC_TIME"}="C";
|
|
|
|
|
|
|
|
#print $ENV{"LC_ALL"};
|
|
|
|
#exit 0;
|
|
|
|
|
1999-01-20 02:34:50 +03:00
|
|
|
sub gd
|
|
|
|
{
|
|
|
|
my ($dt) = @_;
|
|
|
|
$dt =~ tr/ //s;
|
|
|
|
$dt =~ s/^\w+ (\w+) (\d+) (\d+:\d+):\d+ .+\n?$/$1 $2 $3/;
|
|
|
|
return $dt;
|
|
|
|
}
|
|
|
|
|
|
|
|
$DATE=gd(`date`);
|
|
|
|
|
|
|
|
sub list
|
|
|
|
{
|
|
|
|
my (@rpms, %files, $i, $fn, $dn, $sz, $bt);
|
|
|
|
# @rpms = `rpm -qa --qf "\%{NAME}-\%{VERSION}-\%{RELEASE}:\%{GROUP}:\%{SIZE}:\%{BUILDTIME:date}\n"`;
|
|
|
|
@rpms = `rpm -qa --qf "\%{NAME}-\%{VERSION}:\%{GROUP}:\%{SIZE}:\%{BUILDTIME:date}\n"`;
|
|
|
|
print @trpms;
|
|
|
|
%files = ();
|
|
|
|
%sizes = ();
|
|
|
|
%dates = ();
|
|
|
|
for $i (@rpms) {
|
|
|
|
if ($i =~ /^([^:]+):([^:]+):([^:]+):(.+)$/) {
|
|
|
|
($fn, $dn, $sz, $bt) = ($1, $2, $3, $4);
|
|
|
|
$dn =~ s/ /_/g;
|
|
|
|
if (defined $files{$dn}) {
|
|
|
|
push(@{$files{$dn}}, $fn);
|
|
|
|
} else {
|
|
|
|
@{$files{$dn}} = ($fn);
|
|
|
|
}
|
|
|
|
$sizes{$fn} = $sz;
|
|
|
|
$dates{$fn} = gd($bt);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for $i (sort keys %files) {
|
|
|
|
print "dr-xr-xr-x 1 root root 0 $DATE $i/\n";
|
|
|
|
for $fn (sort @{$files{$i}}) {
|
|
|
|
print "-r--r--r-- 1 root root $sizes{$fn} $dates{$fn} $i/$fn.trpm\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#open O, ">>/tmp/tt";
|
|
|
|
#print O "RPMS: ";
|
|
|
|
#for $i (@ARGV) {
|
|
|
|
# print O "$i ";
|
|
|
|
#}
|
|
|
|
#print O "\n";
|
|
|
|
#close O;
|
|
|
|
|
|
|
|
if ($ARGV[0] eq "list") { list(); exit(0); }
|
|
|
|
elsif ($ARGV[0] eq "copyout") { open O, ">$ARGV[3]"; print O $ARGV[2], "\n"; close O; exit(0); }
|
|
|
|
exit(1);
|