ac, ftp, ciag dalszy - pomoc potrzebna

Radoslaw Zielinski radek w karnet.pl
Wto, 10 Sie 2004, 20:00:31 CEST


havner <havner w smtp.kamp.pl> [10-08-2004 17:31]:
> On Tuesday 10 August 2004 09:30, Marcin Doliński wrote:
> > > Wiekszosc to braki na amd64 i trzeba to dobudowac...
[...]
> I czy nie moge sie tego skryptu doprosic??

> cat main-niepelne | check [sprawdzajacy spece w ~/rpm/SPECS] > 
> lista_NAPRAWDE_niepelnych

> Nie ma tu jakiegos programisty perla czy innego pythona? Naprawde by mi to 
> ulatwilo prace...

W załączniku.  Dane na STDIN lub nazwa pliku jako argument.  Dopasuj
ostatnią linię do swoich potrzeb (sposób wypisywania).  Ignoruje daty.

-- 
Radosław Zieliński <radek w karnet.pl>
[ GPG key: http://radek.karnet.pl/ ]
-------------- następna część ---------
#!/usr/bin/perl -wl
use strict;

my $specsdir = "$ENV{HOME}/rpm/SPECS";
my @archs    = qw(i386 i586 i686 athlon alpha ppc sparc amd64);
my @archs86  = qw(i386 i586 i686 athlon);
my %pakiety;

while (<>) {
	my (undef, undef, undef, $nazwa, @arch) = split /\s+/;
	warn "więcej niż jeden wpis dla pakietu $nazwa!\n"
	  if exists $pakiety{$nazwa};
	$pakiety{$nazwa} = { map { ; $_ => 1 } @arch };
}

for my $pakiet (keys %pakiety) {
	my $spec = "$specsdir/$pakiet.spec";
	if (-e $spec) {
		open my $F, $spec or die "open $spec: $!";
		my @exarch;
		while (<$F>) {
			s/\s+$//;
			if (/^ExclusiveArch:\s+(.+)/) {
				@exarch = grep length,
				  map { $_ eq '%{ix86}' ? @archs86 : $_ } split /\s/, $1;
				last;
			}
			last unless length;
		}
		sprawdz($pakiet, @exarch ? \@exarch : \@archs);
		close $F or die $!;
	}
	else {
		warn "$spec nie istnieje\n";
		next;
	}
}

sub sprawdz {
	my($pakiet, $arch) = @_;
	my @brak = grep !$pakiety{$pakiet}->{$_}, sort @$arch;
	print "$pakiet: @brak" if @brak;
}

-------------- następna część ---------
Załącznik, który nie był tekstem został usunięty...
Name: nie znany
Type: application/pgp-signature
Size: 189 bytes
Desc: nie znany
Url : /mailman/pipermail/pld-devel-pl/attachments/20040810/2d15ec39/attachment.bin


Więcej informacji o liście dyskusyjnej pld-devel-pl