[projects/distfiles] reformat with tabs, now matches enforced vim modeline

glen glen at pld-linux.org
Mon Dec 3 15:11:05 CET 2012


commit e3413dab561e188953c0d1e493fc1ca763e7a36a
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Mon Dec 3 16:10:49 2012 +0200

    reformat with tabs, now matches enforced vim modeline

 specparser.pl | 477 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 238 insertions(+), 239 deletions(-)
---
diff --git a/specparser.pl b/specparser.pl
index 9bd39bd..1709c8e 100755
--- a/specparser.pl
+++ b/specparser.pl
@@ -1,5 +1,4 @@
 #!/usr/bin/perl
-# $Id$
 #
 # USAGE: specparser.pl file.spec
 #
@@ -28,139 +27,139 @@ sub print_source($$$);
 
 sub next_spec($)
 {
-    $spec = shift;
-    @spec = ();
-    $base_spec = $spec;
-    $base_spec =~ s|.*/||;
+	$spec = shift;
+	@spec = ();
+	$base_spec = $spec;
+	$base_spec =~ s|.*/||;
 }
 
 sub error($)
 {
-    print_once( "ERROR: $base_spec: $_[0]" );
+	print_once( "ERROR: $base_spec: $_[0]" );
 }
 
 sub warning($)
 {
-    print "ERROR: $base_spec: $_[0]\n";
+	print "ERROR: $base_spec: $_[0]\n";
 }
 
 sub trim_spaces($)
 {
-    my $v = shift;
+	my $v = shift;
 
-    $v =~ s/\s+$//;
-    $v =~ s/^\s+//;
+	$v =~ s/\s+$//;
+	$v =~ s/^\s+//;
 
-    return $v;
+	return $v;
 }
 
 # expand macros in string
 sub expand($$) # {{{
 {
-    my $v = trim_spaces(shift);
-    my $macrotree = shift;
-    my $cnt = 20;
-
-    while ($v =~ /\%\{([^\}]+)\}/) {
-        my $value;
-        if (defined $macrotree->{$1}) {
-            $value = $macrotree->{$1};
-        } else {
-            error("undefined macro $1");
-            $value = "UNDEFINED";
-            return undef;
-        }
-        $v =~ s/\%\{([^\}]+)\}/$value/;
-
-        return $v if (length $v > 1000 or $cnt-- <= 0)
-    }
-
-    while ($v =~ s/\%\(\s*echo\s+([^\|]+?)\s*\|\s*tr\s*(-d|)\s+([^\)]+?)\s*\)/\@\@tr-me\@\@/) {
-        my ($what, $d_opt, $how) = ($1, $2, $3);
-        my ($from, $to) = ($how, "");
-        ($from, $to) = ($1, $2)
-            if $how =~ /^([^\s]+)\s+([^\s]+)$/;
-        if ($d_opt and $to ne "") {
-            error("tr -d with second string)");
-        } elsif (($from . $to) =~ /^[a-zA-Z0-9\+_\-\.]+$/) {
-            if ($d_opt) {
-                eval "\$what =~ tr/$from//d;";
-            } else {
-                eval "\$what =~ tr/$from/$to/;";
-            }
-        } else {
-            error("illegal characters in tr string(s) '$from' '$to'");
-        }
-        $v =~ s/\@\@tr-me\@\@/$what/;
-
-        return $v if (length $v > 1000 or $cnt-- <= 0)
-    }
-
-    error("unexpanded macros in $v")
-        if ($v =~ /\%[^0-9]/);
-
-    return $v;
+	my $v = trim_spaces(shift);
+	my $macrotree = shift;
+	my $cnt = 20;
+
+	while ($v =~ /\%\{([^\}]+)\}/) {
+		my $value;
+		if (defined $macrotree->{$1}) {
+			$value = $macrotree->{$1};
+		} else {
+			error("undefined macro $1");
+			$value = "UNDEFINED";
+			return undef;
+		}
+		$v =~ s/\%\{([^\}]+)\}/$value/;
+
+		return $v if (length $v > 1000 or $cnt-- <= 0)
+	}
+
+	while ($v =~ s/\%\(\s*echo\s+([^\|]+?)\s*\|\s*tr\s*(-d|)\s+([^\)]+?)\s*\)/\@\@tr-me\@\@/) {
+		my ($what, $d_opt, $how) = ($1, $2, $3);
+		my ($from, $to) = ($how, "");
+		($from, $to) = ($1, $2)
+			if $how =~ /^([^\s]+)\s+([^\s]+)$/;
+		if ($d_opt and $to ne "") {
+			error("tr -d with second string)");
+		} elsif (($from . $to) =~ /^[a-zA-Z0-9\+_\-\.]+$/) {
+			if ($d_opt) {
+				eval "\$what =~ tr/$from//d;";
+			} else {
+				eval "\$what =~ tr/$from/$to/;";
+			}
+		} else {
+			error("illegal characters in tr string(s) '$from' '$to'");
+		}
+		$v =~ s/\@\@tr-me\@\@/$what/;
+
+		return $v if (length $v > 1000 or $cnt-- <= 0)
+	}
+
+	error("unexpanded macros in $v")
+		if ($v =~ /\%[^0-9]/);
+
+	return $v;
 } # }}}
 
 sub preparse_spec($) # {{{
 {
-    @spec = ("");
-
-    open(F, "< $_[0]") or die("failed opening: " . $_[0]);
-    while (<F>) {
-        chomp;
-        if (/^\s*(\%(description|package|prep|install|pre|post|files)|BuildRoot|URL)/) {
-            last;
-        } elsif (/^\s*(\%if.*|\%else|\%endif|\%define\s+.*|Version.*|Name.*)\s*$/) {
-            $_ = $1;
-            if ($spec[$#spec] =~ /\%if/) {
-                if (/\%else/) {
-                    next; # don't include empty %if-%else
-                } elsif (/\%endif/) {
-                    # remove empty %if-%endif
-                    pop @spec;
-                    next;
-                }
-            }
-            push @spec, $_;
-        } elsif (/^NoSource\s*:\s*(\d+)\s*$/i) {
-            $no_source{ "source" . $1 } = 1;
-        } elsif (my ($patchset_pattern, $patchset_start, $patchset_end) = /^%patchset_source.+-f\s+(\S+)\s+(\S+)\s+(\S+)/i) {
-            %patchset = (
-                pattern => $patchset_pattern,
-                start => $patchset_start,
-                end => $patchset_end
-            );
-        }
-    }
-    close(F);
-
-    shift @spec;
+	@spec = ("");
+
+	open(F, "< $_[0]") or die("failed opening: " . $_[0]);
+	while (<F>) {
+		chomp;
+		if (/^\s*(\%(description|package|prep|install|pre|post|files)|BuildRoot|URL)/) {
+			last;
+		} elsif (/^\s*(\%if.*|\%else|\%endif|\%define\s+.*|Version.*|Name.*)\s*$/) {
+			$_ = $1;
+			if ($spec[$#spec] =~ /\%if/) {
+				if (/\%else/) {
+					next; # don't include empty %if-%else
+				} elsif (/\%endif/) {
+					# remove empty %if-%endif
+					pop @spec;
+					next;
+				}
+			}
+			push @spec, $_;
+		} elsif (/^NoSource\s*:\s*(\d+)\s*$/i) {
+			$no_source{ "source" . $1 } = 1;
+		} elsif (my ($patchset_pattern, $patchset_start, $patchset_end) = /^%patchset_source.+-f\s+(\S+)\s+(\S+)\s+(\S+)/i) {
+			%patchset = (
+				pattern => $patchset_pattern,
+				start => $patchset_start,
+				end => $patchset_end
+			);
+		}
+	}
+	close(F);
+
+	shift @spec;
 } # }}}
 
 sub process_patchset($) {
-    my $macros = shift;
-    return unless %patchset or $sources;
-
-    # parse sources file
-    my %files;
-    open(my $fh, '<', $sources) or die $!;
-    while (<$fh>) {
-        chomp;
-        next unless my ($hash, $filename) = /^([a-f0-9]{32})\s+\*?(.+)$/;
-        $files{$filename} = $hash;
-    }
-
-    # print out patchset entries which source md5 is present in source file
-    my $start = expand($patchset{start}, $macros);
-    my $end = expand($patchset{end}, $macros);
-    my $pattern = expand($patchset{pattern}, $macros);
-    for (my $i = $start; $i <= $end; $i++) {
-        my $url = sprintf($pattern, $i);
-        my ($basename) = $url =~ m{/([^/]+$)};
-        my $hash = $files{$basename} or next;
-        print_source "patchset $i", $hash, $url;
-    }
+	my $macros = shift;
+	return unless %patchset or $sources;
+
+	# parse sources file
+	my %files;
+	open(my $fh, '<', $sources) or die $!;
+	while (<$fh>) {
+		chomp;
+		next unless my ($hash, $filename) = /^([a-f0-9]{32})\s+\*?(.+)$/;
+		$files{$filename} = $hash;
+	}
+
+	# print out patchset entries which source md5 is present in source file
+	my $start = expand($patchset{start}, $macros);
+	my $end = expand($patchset{end}, $macros);
+	my $pattern = expand($patchset{pattern}, $macros);
+	for (my $i = $start; $i <= $end; $i++) {
+		my $url = sprintf($pattern, $i);
+		my ($basename) = $url =~ m{/([^/]+$)};
+		my $hash = $files{$basename} or next;
+		print_source "patchset $i", $hash, $url;
+	}
 }
 
 
@@ -169,149 +168,149 @@ my $total = 0;
 sub cont($$);
 sub cont($$) # {{{
 {
-    my ($spec, $macros) = @_;
-    local $_;
-    while ($_ = shift @{$spec}) {
-        if (0 <= index $_, '%if') { # if, ifarch, ifos
-
-            # split spec parsing
-            my @speccopy = @{$spec};
-            my %macroscopy = %{$macros};
-            cont(\@speccopy, \%macroscopy);
-
-            my $level = 0;
-            while ($_ = shift @{$spec}) {
-                if ($level <= 0 and ($_ eq '%else' or $_ eq '%endif')) {
-                    last;
-                } elsif (0 <= index $_, '%if') {
-                    $level++;
-                } elsif ($_ eq '%endif') {
-                    $level--;
-                }
-            }
-
-            # continue parsing
-        } elsif ($_ eq '%else') {
-
-            # %else happens only when %if was interpreted
-            # so skip until %endif
-
-            my $level = 0;
-            while ($_ = shift @{$spec}) {
-                if ($level <= 0 and $_ eq '%endif') {
-                    last;
-                } elsif (0 <= index $_, '%if') {
-                    $level++;
-                } elsif ($_ eq '%endif') {
-                    $level--;
-                }
-            }
-
-        } elsif (/^\s*\%(define|global)\s+([^\s]+)\s+([^\s].*?)\s*$/) {
-            $macros->{$2} = $3;
-
-        } elsif (/^Version\s*:\s*(.*?)\s*$/i) {
-            $macros->{"version"} = $1;
-        } elsif (/^Name\s*:\s*(.*?)\s*$/i) {
-            $macros->{"name"} = $1;
-        } elsif (!/\%endif/) {
-            warn "unrecognised line: $_\n";
-        }
-    }
-
-    # so we have macros now, can parse patchset source
-    process_patchset($macros);
-
-    # the end, yuppie !
-    foreach my $s (@sources) {
-        my $src = expand( $s->[2], $macros );
-        if (defined $src) {
-            our %tried;
-            unless (exists $tried{$src}) {
-                print_source( $s->[0], $s->[1], $src );
-                $tried{$src} = 1;
-            }
-        }
-    }
-
-    if (++$total > 10000) {
-        error("maximum number of bcond posibilities exceeded");
-        exit 0;
-    }
+	my ($spec, $macros) = @_;
+	local $_;
+	while ($_ = shift @{$spec}) {
+		if (0 <= index $_, '%if') { # if, ifarch, ifos
+
+			# split spec parsing
+			my @speccopy = @{$spec};
+			my %macroscopy = %{$macros};
+			cont(\@speccopy, \%macroscopy);
+
+			my $level = 0;
+			while ($_ = shift @{$spec}) {
+				if ($level <= 0 and ($_ eq '%else' or $_ eq '%endif')) {
+					last;
+				} elsif (0 <= index $_, '%if') {
+					$level++;
+				} elsif ($_ eq '%endif') {
+					$level--;
+				}
+			}
+
+			# continue parsing
+		} elsif ($_ eq '%else') {
+
+			# %else happens only when %if was interpreted
+			# so skip until %endif
+
+			my $level = 0;
+			while ($_ = shift @{$spec}) {
+				if ($level <= 0 and $_ eq '%endif') {
+					last;
+				} elsif (0 <= index $_, '%if') {
+					$level++;
+				} elsif ($_ eq '%endif') {
+					$level--;
+				}
+			}
+
+		} elsif (/^\s*\%(define|global)\s+([^\s]+)\s+([^\s].*?)\s*$/) {
+			$macros->{$2} = $3;
+
+		} elsif (/^Version\s*:\s*(.*?)\s*$/i) {
+			$macros->{"version"} = $1;
+		} elsif (/^Name\s*:\s*(.*?)\s*$/i) {
+			$macros->{"name"} = $1;
+		} elsif (!/\%endif/) {
+			warn "unrecognised line: $_\n";
+		}
+	}
+
+	# so we have macros now, can parse patchset source
+	process_patchset($macros);
+
+	# the end, yuppie !
+	foreach my $s (@sources) {
+		my $src = expand( $s->[2], $macros );
+		if (defined $src) {
+			our %tried;
+			unless (exists $tried{$src}) {
+				print_source( $s->[0], $s->[1], $src );
+				$tried{$src} = 1;
+			}
+		}
+	}
+
+	if (++$total > 10000) {
+		error("maximum number of bcond posibilities exceeded");
+		exit 0;
+	}
 } # }}}
 
 sub print_once($)
 {
-    our %printed;
-    my $l = shift;
-    unless (exists $printed{$l}) {
-        print $l . "\n";
-        $printed{$l} = 1;
-    }
+	our %printed;
+	my $l = shift;
+	unless (exists $printed{$l}) {
+		print $l . "\n";
+		$printed{$l} = 1;
+	}
 }
 
 sub print_source($$$) # {{{
 {
-    my ($no, $md5, $s) = @_;
-
-    if ($s =~ /^([a-z0-9A-Z;:\=\?&\@\+\~\.,\-\/_]|\%[0-9])+(#\/[a-zA-Z0-9\._-]+)?$/) {
-        if ($s =~ /^(ftp|http|https):\/\//) {
-            if ($s =~ /\/$/) {
-                error("source $no ($s) is directory");
-            } else {
-                if ($s =~ /:\/\/distfiles\.pld-linux\.org\/src/) {
-                    $s =~ s|.*/||;
-                    print_once( "$md5 no-url-copy://$s" );
-                } else {
-                    print_once( "$md5 $s" );
-                }
-            }
-        } else {
-            $s =~ s|.*/||;
-            print_once( "$md5 no-url://$s");
-        }
-    } else {
-        error("source $no url $s is ill-formatted");
-    }
+	my ($no, $md5, $s) = @_;
+
+	if ($s =~ /^([a-z0-9A-Z;:\=\?&\@\+\~\.,\-\/_]|\%[0-9])+(#\/[a-zA-Z0-9\._-]+)?$/) {
+		if ($s =~ /^(ftp|http|https):\/\//) {
+			if ($s =~ /\/$/) {
+				error("source $no ($s) is directory");
+			} else {
+				if ($s =~ /:\/\/distfiles\.pld-linux\.org\/src/) {
+					$s =~ s|.*/||;
+					print_once( "$md5 no-url-copy://$s" );
+				} else {
+					print_once( "$md5 $s" );
+				}
+			}
+		} else {
+			$s =~ s|.*/||;
+			print_once( "$md5 no-url://$s");
+		}
+	} else {
+		error("source $no url $s is ill-formatted");
+	}
 } # }}}
 
 sub add_md5_to_print($) # {{{
 {
-    open(F, "< $_[0]") or die("failed opening: " . $_[0]);
-    my %sourcemap = ();
-    while (<F>) {
-        chomp;
-        if (/^((?:Source|Patch)\d+)\s*:\s*(.*)/i) {
-            my $sourceno = lc $1;
-            my $source = $2;
-            # master.dl is outdated currently
-            # $source =~ s/dl.sourceforge.net/master.dl.sourceforge.net/;
-            $sourcemap{ $sourceno } = $source;
-        } elsif (/^\s*#\s*((?:source|patch)\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
-            my $no = lc $1;
-            my $md5 = $2;
-            if (defined $no_source{$no}) {
-                error("both NoSource: $no and md5 given");
-            } elsif (defined $sourcemap{ $no} ) {
-                my $source = $sourcemap{ $no };
-                push @sources, [$no, $md5, $source];
-            } else {
-                error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
-            }
-        } elsif (/^\s*BuildRequires:\s*digest\(%((?:SOURCE|PATCH)\d+)\)\s*=\s*([a-f0-9]{32})/i) {
-            my $no = lc $1;
-            my $md5 = $2;
-            if (defined $no_source{ $no }) {
-                error("both NoSource: $no and md5 given");
-            } elsif (defined $sourcemap{ $no }) {
-                my $source = $sourcemap{ $no };
-                push @sources, [$no, $md5, $source];
-            } else {
-                error("source $no not defined (# Source digest has to be placed after SourceN:)");
-            }
-        }
-    }
-    close(F);
+	open(F, "< $_[0]") or die("failed opening: " . $_[0]);
+	my %sourcemap = ();
+	while (<F>) {
+		chomp;
+		if (/^((?:Source|Patch)\d+)\s*:\s*(.*)/i) {
+			my $sourceno = lc $1;
+			my $source = $2;
+			# master.dl is outdated currently
+			# $source =~ s/dl.sourceforge.net/master.dl.sourceforge.net/;
+			$sourcemap{ $sourceno } = $source;
+		} elsif (/^\s*#\s*((?:source|patch)\d+)-md5\s*:\s*([a-f0-9]{32})/i) {
+			my $no = lc $1;
+			my $md5 = $2;
+			if (defined $no_source{$no}) {
+				error("both NoSource: $no and md5 given");
+			} elsif (defined $sourcemap{ $no} ) {
+				my $source = $sourcemap{ $no };
+				push @sources, [$no, $md5, $source];
+			} else {
+				error("source $no not defined (# SourceN-md5: has to be placed just after SourceN:)");
+			}
+		} elsif (/^\s*BuildRequires:\s*digest\(%((?:SOURCE|PATCH)\d+)\)\s*=\s*([a-f0-9]{32})/i) {
+			my $no = lc $1;
+			my $md5 = $2;
+			if (defined $no_source{ $no }) {
+				error("both NoSource: $no and md5 given");
+			} elsif (defined $sourcemap{ $no }) {
+				my $source = $sourcemap{ $no };
+				push @sources, [$no, $md5, $source];
+			} else {
+				error("source $no not defined (# Source digest has to be placed after SourceN:)");
+			}
+		}
+	}
+	close(F);
 } # }}}
 
 next_spec(shift);
================================================================

---- gitweb:

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



More information about the pld-cvs-commit mailing list