diff options
author | edwin <edwin@FreeBSD.org> | 2008-06-06 13:52:57 +0800 |
---|---|---|
committer | edwin <edwin@FreeBSD.org> | 2008-06-06 13:52:57 +0800 |
commit | 9f8321ff474c6d2e99016eb578ab03876ec6f158 (patch) | |
tree | 1793adbbc54a02f61298a3a37f61195afe307240 /Tools | |
parent | f0180de81e5433c8e920d4d460e90b73c53c506c (diff) | |
download | freebsd-ports-gnome-9f8321ff474c6d2e99016eb578ab03876ec6f158.tar.gz freebsd-ports-gnome-9f8321ff474c6d2e99016eb578ab03876ec6f158.tar.zst freebsd-ports-gnome-9f8321ff474c6d2e99016eb578ab03876ec6f158.zip |
Add support for "PORTREVISION?=" and "PORTEPOCH"
Tested on: devel/gettext bump
Diffstat (limited to 'Tools')
-rwxr-xr-x | Tools/scripts/bump_revision.pl | 114 |
1 files changed, 62 insertions, 52 deletions
diff --git a/Tools/scripts/bump_revision.pl b/Tools/scripts/bump_revision.pl index f3a5b5a4e5f9..6e47e6f13443 100755 --- a/Tools/scripts/bump_revision.pl +++ b/Tools/scripts/bump_revision.pl @@ -25,54 +25,54 @@ EOF exit 1; } -my $INDEX="/usr/ports/INDEX"; -my $USER=$ENV{USER}; +my $INDEX = "/usr/ports/INDEX"; +my $USER = $ENV{USER}; { - $opt_i=""; - $opt_u=""; + $opt_i = ""; + $opt_u = ""; getopts("i:u:"); - $INDEX=$opt_i if ($opt_i); - $USER=$opt_u if ($opt_u); + $INDEX = $opt_i if ($opt_i); + $USER = $opt_u if ($opt_u); die "$INDEX doesn't seem to exist. Please check the value supplied with -i or use -i." if (! -f $INDEX); } -my $PORT=$ARGV[0]; +my $PORT = $ARGV[0]; usage() if (!$PORT); -my $CVSROOT=":ext:$USER\@pcvs.freebsd.org:/home/pcvs"; +my $CVSROOT = ":ext:$USER\@pcvs.freebsd.org:/home/pcvs"; # # Read the index, save some interesting keys # -my %index=(); +my %index = (); { print "Reading $INDEX\n"; - open(FIN,"$INDEX") or die "Cannot open $INDEX for reading."; - my @lines=<FIN>; + open(FIN, "$INDEX") or die "Cannot open $INDEX for reading."; + my @lines = <FIN>; chomp(@lines); close(FIN); foreach my $line (@lines) { - my @a=split(/\|/,$line); - my @b=split(/\//,$a[1]); + my @a = split(/\|/, $line); + my @b = split(/\//, $a[1]); - my $port=$b[-2]."/".$b[-1]; + my $port = $b[-2]."/".$b[-1]; - $index{$port}{portname}=$b[-1]; - $index{$port}{portnameversion}=$a[0]; - $index{$port}{portdir}=$a[1]; - $index{$port}{comment}=$a[3]; - $index{$port}{deps}=(); + $index{$port}{portname} = $b[-1]; + $index{$port}{portnameversion} = $a[0]; + $index{$port}{portdir} = $a[1]; + $index{$port}{comment} = $a[3]; + $index{$port}{deps} = (); if ($a[8]) { - @b=split(" ",$a[8]); + @b = split(" ", $a[8]); foreach my $b (@b) { - $index{$port}{deps}{$b}=1; + $index{$port}{deps}{$b} = 1; } } } - my @k=keys(%index); - print "- Processed ",$#k+1," entries.\n"; + my @k = keys(%index); + print "- Processed ", $#k+1, " entries.\n"; } # @@ -83,52 +83,52 @@ my %index=(); if (defined $index{$PORT}) { # all okay } else { - my $count=0; - my $n=""; + my $count = 0; + my $n = ""; foreach my $p (keys(%index)) { - if ($p=~/\/$PORT$/) { - $n.=" " if ($n); - $n.=$p; + if ($p =~ /\/$PORT$/) { + $n .= " " if ($n); + $n .= $p; $count++; } } - if ($count==0) { + if ($count == 0) { die "Cannot find ${PORT} in ${INDEX}."; - } elsif ($count==1) { - $PORT=$n; + } elsif ($count == 1) { + $PORT = $n; } else { die "Found ${PORT} more than once in ${INDEX}: $n. Try category/portname."; } } -my $PORTNAMEVERSION=$index{$PORT}{portnameversion}; +my $PORTNAMEVERSION = $index{$PORT}{portnameversion}; print "Found $PORT as $PORTNAMEVERSION\n"; # # Figure out all the ports depending on this one. # -my %DEPPORTS=(); -my $ports=""; +my %DEPPORTS = (); +my $ports = ""; { print "Searching for ports depending on $PORT\n"; foreach my $p (keys(%index)) { if (defined $index{$p}{deps}{$PORTNAMEVERSION}) { - $DEPPORTS{$p}=1; - $ports.=" " if ($ports); - $ports.="ports/$p"; + $DEPPORTS{$p} = 1; + $ports .= " " if ($ports); + $ports .= "ports/$p"; } } - my @k=keys(%DEPPORTS); - print "- Found ",$#k+1," ports depending on it.\n"; + my @k = keys(%DEPPORTS); + print "- Found ", $#k+1, " ports depending on it.\n"; } # # Create a temp directory and cvs checkout the ports # (don't do error checking, too complicated right now) # -my $TMPDIR=getcwd()."/.tmpdir.$$"; +my $TMPDIR = getcwd()."/.tmpdir.$$"; { - mkdir($TMPDIR,0755); + mkdir($TMPDIR, 0755); chdir($TMPDIR); `cvs -d $CVSROOT co -T $ports`; } @@ -140,35 +140,45 @@ chdir($TMPDIR); { print "Updating Makefiles\n"; foreach my $p (keys(%DEPPORTS)) { - my $makefile="ports/$p/Makefile"; + my $makefile = "ports/$p/Makefile"; print "- Updating Makefile of $p\n"; - if (!open(FIN,$makefile)) { + if (!open(FIN, $makefile)) { print "-- Cannot open Makefile of $p, ignored.\n"; next; } - my @lines=<FIN>; + my @lines = <FIN>; close(FIN); chomp(@lines); - my $revision=1; + my $revision = 1; foreach my $line (@lines) { - last if ($line=~/^MAINTAINER/); - $revision+=$1 if ($line=~/PORTREVISION=[ \t](\d+)$/); + last if ($line =~ /^MAINTAINER/); + $revision += $1 if ($line =~ /PORTREVISION??=[ \t]*(\d+)$/); } - my $printedrev=0; - open(FOUT,">$makefile"); + my $printedrev = 0; + open(FOUT, ">$makefile"); foreach my $line (@lines) { if (!$printedrev) { - if ($line=~/^CATEGORIES=/ || $line=~/^PORTREVISION=/) { + if ($line =~ /^CATEGORIES??=/ || $line =~ /^PORTEPOCH??=/) { print FOUT "PORTREVISION= $revision\n"; - $printedrev=1; + $printedrev = 1; + # Fall through! + } + if ($line =~ /^PORTREVISION\?=/) { + print FOUT "PORTREVISION?= $revision\n"; + $printedrev = 1; + next; + } + if ($line =~ /^PORTREVISION=/) { + print FOUT "PORTREVISION= $revision\n"; + $printedrev = 1; + next; } } - next if ($line=~/^PORTREVISION=/); print FOUT "$line\n"; } close(FOUT); |