<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
#! /usr/bin/perl
#
# Written by Balazs Nagy (julian7@kva.hu) 1998
# locale bugfix by Michal Svec (rebel@penguin.cz) 2000
# (C) 1998 The Free Software Foundation.
#
#

# override any locale for dates
delete $ENV{"LC_ALL"};
$ENV{"LC_TIME"}="C";

#print $ENV{"LC_ALL"};
#exit 0;

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);
