commit 1db641df2385f84ad613ef1ce09f63259c80fc1d
Author: Elan Ruusamäe <[email protected]>
Date:   Mon Dec 3 16:11:34 2012 +0200

    move reading 'sources' file to separate sub

 specparser.pl | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)
---
diff --git a/specparser.pl b/specparser.pl
index 1709c8e..e865609 100755
--- a/specparser.pl
+++ b/specparser.pl
@@ -20,7 +20,7 @@ my $spec;
 my $base_spec;
 my @spec;
 my @sources;
-my $sources;
+my $sources_file;
 my %patchset;
 
 sub print_source($$$);
@@ -137,18 +137,28 @@ sub preparse_spec($) # {{{
        shift @spec;
 } # }}}
 
-sub process_patchset($) {
-       my $macros = shift;
-       return unless %patchset or $sources;
+# read in 'sources' file
+sub read_sources_file() {
+       return () unless $sources_file and -e $sources_file;
 
-       # parse sources file
-       my %files;
-       open(my $fh, '<', $sources) or die $!;
+       our %files;
+       return \%files if %files;
+
+       open(my $fh, '<', $sources_file) or die $!;
        while (<$fh>) {
                chomp;
                next unless my ($hash, $filename) = 
/^([a-f0-9]{32})\s+\*?(.+)$/;
                $files{$filename} = $hash;
        }
+       return \%files;
+}
+
+sub process_patchset($) {
+       my $macros = shift;
+       return unless %patchset;
+
+       # parse sources file
+       my $checksums = read_sources_file() or return;
 
        # print out patchset entries which source md5 is present in source file
        my $start = expand($patchset{start}, $macros);
@@ -157,7 +167,7 @@ sub process_patchset($) {
        for (my $i = $start; $i <= $end; $i++) {
                my $url = sprintf($pattern, $i);
                my ($basename) = $url =~ m{/([^/]+$)};
-               my $hash = $files{$basename} or next;
+               my $hash = $checksums->{$basename} or next;
                print_source "patchset $i", $hash, $url;
        }
 }
@@ -314,8 +324,7 @@ sub add_md5_to_print($) # {{{
 } # }}}
 
 next_spec(shift);
-$sources = shift if @ARGV;
-undef $sources if $sources and not -e $sources;
+$sources_file = shift if @ARGV;
 preparse_spec($spec);
 add_md5_to_print($spec);
 cont( \@spec, { "nil" => "" } );
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/projects/distfiles.git/commitdiff/1db641df2385f84ad613ef1ce09f63259c80fc1d

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to