mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
scripts/orphaned-pkgs-removal-tool.pl tool to remove abandoned package files from the repos when a newer version exists
This commit is contained in:
parent
374c36cee8
commit
51cb35c7d0
1 changed files with 110 additions and 0 deletions
110
scripts/orphaned-pkgs-removal-tool.pl
Normal file
110
scripts/orphaned-pkgs-removal-tool.pl
Normal file
|
@ -0,0 +1,110 @@
|
|||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
|
||||
use File::Find;
|
||||
use POSIX;
|
||||
|
||||
|
||||
|
||||
|
||||
my @dirs = qw(arm armv6h armv7h);
|
||||
my @files = ();
|
||||
my @unfails = ();
|
||||
my (%arm, %armv6h, %armv7h);
|
||||
|
||||
|
||||
print "This will output a listing of files that have been abandoned by" .
|
||||
" plugbuild for some reason or another. \nIt can be pasted " .
|
||||
"into a bash script/xargs, and then outputs unfails for plugbuild just to make sure\n\n\n";
|
||||
|
||||
foreach my $arch (@dirs){
|
||||
find(\&pushFile, "/var/www/archlinuxarm/html/$arch");
|
||||
}
|
||||
|
||||
foreach (@files){
|
||||
my @parts = split('/', $_);
|
||||
my $package = $parts[-1];
|
||||
#break the package name down to it's base part...this is probably missing a few, but it's quick and dirty for now.
|
||||
$package =~ s/-\d.*-\d{1,2}-(any|arm|armv6h|armv7h)\.pkg\.tar\.xz//;
|
||||
if ($package =~ m/.*(dkms|dpi|blank).*/) {
|
||||
print "\#Skipping " . $_ . "\n";
|
||||
next;
|
||||
}
|
||||
|
||||
if ($parts[5] eq "arm"){
|
||||
if (exists $arm{$package}) {
|
||||
push(@unfails, '!unfail 5 ' . $package);
|
||||
#stat[9] is the epoch of the last modified date
|
||||
if ((stat ($_))[9] < (stat ($arm{$package}))[9]) {
|
||||
print "rm \"" . $_ . "\"\n";
|
||||
print "\#rm \"" . $arm{$package} . "\"\n";
|
||||
|
||||
}
|
||||
else {
|
||||
print "rm \"" . $arm{$package} . "\"\n";
|
||||
print "#rm \"" . $_ . "\"\n";
|
||||
$arm{$package} = $_;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
$arm{$package} = $_;
|
||||
}
|
||||
|
||||
}
|
||||
elsif ($parts[5] eq "armv6h"){
|
||||
if (exists $armv6h{$package}) {
|
||||
push(@unfails, '!unfail 6 ' . $package);
|
||||
if ((stat ($_))[9] < (stat ($armv6h{$package}))[9]) {
|
||||
print "rm \"" . $_ . "\"\n";
|
||||
print "\#rm \"" . $armv6h{$package} . "\"\n";
|
||||
|
||||
}
|
||||
else {
|
||||
print "rm \"" . $armv6h{$package} . "\"\n";
|
||||
print "#rm \"" . $_ . "\"\n";
|
||||
$armv6h{$package} = $_;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
$armv6h{$package} = $_;
|
||||
}
|
||||
|
||||
}
|
||||
elsif ($parts[5] eq "armv7h"){
|
||||
if (exists $armv7h{$package}) {
|
||||
push(@unfails, '!unfail 7 ' . $package);
|
||||
if ((stat ($_))[9] < (stat ($armv7h{$package}))[9]) {
|
||||
print "rm \"" . $_ . "\"\n";
|
||||
print "\#rm \"" . $armv7h{$package} . "\"\n";
|
||||
|
||||
}
|
||||
else {
|
||||
print "rm \"" . $armv7h{$package} . "\"\n";
|
||||
print "#rm \"" . $_ . "\"\n";
|
||||
$armv7h{$package} = $_;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
$armv7h{$package} = $_;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
print "\n\nPaste this into the plugbuild window to make sure that any packages deleted by accident/wrong version get rebuilt.\n\n";
|
||||
foreach (@unfails){
|
||||
print $_ . "\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub pushFile()
|
||||
{
|
||||
push @files, $File::Find::name if(/\.pkg\.tar\.xz/i);
|
||||
}
|
Loading…
Reference in a new issue