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