From 002e1324e0b2bbd96fa2bcc8ce03429e8a0df9ba Mon Sep 17 00:00:00 2001 From: grant Date: Tue, 20 Jan 2004 12:37:08 +0000 Subject: make this work on Solaris by using perl's internal grep(). it is faster, and (f)grep can't handle very long word lists. --- mk/bulk/post-build | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) (limited to 'mk') diff --git a/mk/bulk/post-build b/mk/bulk/post-build index f52394bb8b4..f46de66cf3f 100644 --- a/mk/bulk/post-build +++ b/mk/bulk/post-build @@ -1,5 +1,5 @@ #!/usr/pkg/bin/perl -# $NetBSD: post-build,v 1.26 2003/09/02 07:00:05 jlam Exp $ +# $NetBSD: post-build,v 1.27 2004/01/20 12:37:08 grant Exp $ # # Collect stuff after a pkg bulk build # @@ -251,30 +251,44 @@ close(HTML); system("mkdir -p leftovers-${arch}"); # Find files since last build: - system("find ${LOCALBASE} -newer ${USR_PKGSRC}/${startfile} -type f >>leftovers-${arch}.txt"); - system("find ${X11BASE} -newer ${USR_PKGSRC}/${startfile} -type f >>leftovers-${arch}.txt"); + $leftovers_txt = "leftovers-${arch}.txt"; + $leftovers_html = "leftovers-${arch}.html"; + system("find ${LOCALBASE} -newer ${USR_PKGSRC}/${startfile} -type f >>$leftovers_txt"); + system("find ${X11BASE} -newer ${USR_PKGSRC}/${startfile} -type f >>$leftovers_txt"); # Strip perl-files: - system("pkg_info -qL perl > .p.${arch}"); - system("fgrep -v -x -f .p.${arch} leftovers-${arch}.txt >leftovers-${arch}.txt.new"); - rename("leftovers-${arch}.txt.new", "leftovers-${arch}.txt"); - unlink(".p.${arch}"); + { + local $/; + undef $/; + $perlfiles = `pkg_info -qL perl`; + } + ($perlfiles_pattern = $perlfiles) =~ s/\n/|/g; + $perlfiles_pattern =~ s/|$//; + + open (LEFT, $leftovers_txt) or die "can't read $leftovers_txt: $!"; + @left = ; + close (LEFT); + @leftovers = grep(!/^(${perlfiles_pattern})$/, @left); - # Store leftovers, for easier identification: - system("tar plcf - `cat leftovers-${arch}.txt` | ( cd leftovers-${arch} ; tar plxf - )"); + open (LEFT, ">$leftovers_txt") or die "can't write $leftovers_txt: $!"; + print LEFT @leftovers; + close (LEFT); + + if (scalar(@leftovers)) { + # Store leftovers, for easier identification: + system("tar plcf - `cat $leftovers_txt` | ( cd leftovers-${arch} ; tar plxf - )"); + } # Add links to leftover list: - open (IN, "< leftovers-${arch}.txt") - or die "can't read leftovers-${arch}.txt"; - open (OUT, "> leftovers-${arch}.html") - or die "can't write leftovers-${arch}.html"; + open (OUT, "> $leftovers_html") + or die "can't write $leftovers_html"; print OUT <
 EOOUT
 ;
-	while () {
+	foreach (@leftovers) {
 	    	print OUT "$_\n";
 	}
 	print OUT <
 EOOUT2
 ;
-    	close(IN);
     	close(OUT);
 }
 
-- 
cgit v1.2.3