#! /usr/bin/env perl $version = ""; $filename = "mpich2i.vdproj"; $verbose = false; # Create two new UUIDs chomp($product_uuid = `uuidgen`); chomp($package_uuid = `uuidgen`); #print "'" . $product_uuid . "'\n"; #print "'" . $package_uuid . "'\n"; # Parse the command line foreach $arg (@ARGV) { # print "$arg\n"; if (substr($arg, 1, 5) eq "file:") { $filename = substr $arg, 6; # print "file = '" . $filename . "'\n"; } elsif (substr($arg, 1, 8) eq "version:") { $version = substr $arg, 9; # print "version = '" . $version . "'\n"; } elsif ($arg eq "-v" || $arg eq "/v") { $verbose = true; } else { $version = $arg; # print "version = '" . $version . "'\n"; } } # Get the version if none is specified on the command line if ($version eq "") { unless (open VERSION_FILE, "; s/\r//; chomp; $version = $_; close VERSION_FILE; } #print "version = '$version'\n"; #print "ProductCode = $product_uuid\n"; #print "PackageCode = $package_uuid\n"; unless (open PROJ, "<$filename") { die "Error: Cannot open project file ($filename): $!"; } unless (open PROJ_TMP, ">$filename.tmp") { die "Error: Cannot open output file ($filename.tmp): $!"; } while () { s/(ProductVersion" = "[\d]:).*"/\1$version"/; s/(ProductCode.*{).*}/\1\U$product_uuid}/; s/(PackageCode.*{).*}/\1\U$package_uuid}/; print PROJ_TMP "$_"; } close PROJ; close PROJ_TMP; unless (unlink "$filename") { die "Error: Unable to delete the project file ($filename): $!"; } unless (rename "$filename.tmp", "$filename") { die "Error: Unable to rename '$filename.tmp' -> '$filename': $!"; } print "Success\n";