m|^branch=(.+)| && ( $branch = $1, next );
m|^url=(.+)| && ( $url = $1, next );
m|^-v$| && ( $verbose = 'yes', next );
m|^-help$| && ( usage( ), exit );
usage("unrecognized argument: $_");
unless ( $branch || $url ) { usage("no branch or url specified") }
if ( $name eq 'svn-version' ) {
$revision = fetch_version_from_url($url ? $url : fetch_url_from_branch($branch));
$revision = fetch_revision_from_url($url);
$revision = fetch_revision_from_branch($branch);
unless ( $revision ) { die "could not find revision number for branch $branch" }
print "usage:\n\t$name [-help] [-v] [branch=<BRANCH-LABEL>] [url=<SUBVERSION-URL>]\n";
print "\t\t-v\t\tverbose\n";
print "\t\t-help\t\tdisplay this message and exit\n";
sub fetch_url_from_branch {
open( my $branches, "echo t | svn info --depth immediates https://svn.cv.nrao.edu/svn/casa/branches 2> /dev/null |" );
foreach ( <$branches> ) {
if ( m|Path:\s+$branch-(\S+)| ||
m|Path:\s+$branch$| && $branch =~ m|((?:[0-9]+_)+[0-9]+)| ) {
next unless $suffix =~ m|_|;
if ( $verbose ) { print STDERR "found $branch-$suffix\n" }
my @ver = split('_',$suffix);
foreach $val ( reverse @ver ) {
$current += $val * $place;