#!/usr/bin/perl

$xml = shift;

if (! -f "$xml") {
  print "  Usage: fixver filename\n";
  print "  Bumps the version number in filename.\n";
  exit 0;
}

$tmp = "${xml}.bak";
rename($xml, $tmp);

open(IN, "$tmp") || die "Can't read $tmp: $!\n";
open(OUT, "> $xml") || die "Can't write $xml: $!\n";

$found = 0;
while (<IN>) {
  if (m|^(\s*)<version>(\d+\.\d+\.\d+)</version>|) {
    $found = 1;
    $space = $1;
    $oldver = $2;
    ($a,$b,$c) = split(/\./, $oldver);
    $c++;
    $newver = "${a}.${b}.${c}";
    print OUT "${space}<version>${newver}</version>\n";
  } else {
    print OUT;
  }
}
close(IN); close(OUT);

if (! $found) {
  rename($tmp, $xml);
  print "Failed to find version number in $xml.  Restored file. Bail.\n";
  exit 1;
}

print "Version number in $xml bumped from $oldver to $newver\n";
