188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuif ($#ARGV < 1) {
388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu  print "Usage: version.pl VER FILE {FILE, FILE}\n";
488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu  exit;
588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu}
688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu$V=$ARGV[0];
888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuprint "VER:'${V}'\r\n";
988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcushift(@ARGV);
1088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
1188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcusub replace () {
1288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu  my $filename = $_[0];
1388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
1488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu  if(-s $filename) {
1588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    print "Processing [" . $filename . "]\r\n";
1688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
1788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    my $original = "$filename.original";
1888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
1988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    rename($filename, $original);
2088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    open(OUT, ">$filename");
2188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    open(IN, "$original");
2288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
2388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    my $hitCount=0;
2488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    while(<IN>) {
2588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu      if($hitCount == 0 && /<version>.*<\/version>/) {
2688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu        s/<version>.*<\/version>/<version>${V}<\/version>/;
2788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu        $hitCount++;
2888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu      }
2988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu      print OUT;
3088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    }
3188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    close(IN);
3288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    close(OUT);
3388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    unlink($original);
3488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu  } else {
3588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu    print "File [" . $filename . "] does not exist\r\n"
3688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu  }
3788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu}
3888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
3988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuforeach $ARG (@ARGV) {
4088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu  do replace($ARG);
4188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu}
4288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
4388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
4488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu
45