summaryrefslogtreecommitdiff
path: root/clone_build_tree.pl
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2008-04-25 19:05:33 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2008-04-25 19:05:33 +0000
commitb6cdbf3a1874096a7b3f799faf17a93999a4da19 (patch)
tree7865a5bb18020ffc92787e0391d7438f3d7c5b60 /clone_build_tree.pl
parent0689a6548fecafd4b25b4dc09657a6410f81e6e6 (diff)
downloadMPC-b6cdbf3a1874096a7b3f799faf17a93999a4da19.tar.gz
ChangeLogTag: Fri Apr 25 19:05:59 UTC 2008 Chad Elliott <elliott_c@ociweb.com>
Diffstat (limited to 'clone_build_tree.pl')
-rwxr-xr-xclone_build_tree.pl23
1 files changed, 21 insertions, 2 deletions
diff --git a/clone_build_tree.pl b/clone_build_tree.pl
index f9aa7c8a..3e821058 100755
--- a/clone_build_tree.pl
+++ b/clone_build_tree.pl
@@ -36,7 +36,7 @@ my($exclude) = undef;
my($verbose) = 0;
my($lbuildf) = 0;
my(@foundFiles) = ();
-my($version) = '1.14';
+my($version) = '1.15';
eval 'symlink("", "");';
my($hasSymlink) = ($@ eq '');
@@ -433,6 +433,8 @@ sub usageAndExit {
"<current directory>/build.\n",
"-d Set the directory permissions mode.\n",
"-f Link build files (Makefile, .dsw, .sln, .etc).\n",
+ "-s Set the start directory. It defaults to the ",
+ "<current directory>.\n",
"-v Enable verbose mode.\n";
exit(0);
@@ -446,8 +448,9 @@ sub usageAndExit {
my($dmode) = 0777;
my($absolute) = 0;
my($hardlink) = !$hasSymlink;
-my($builddir) = getcwd() . '/build';
+my($builddir) = undef;
my(@builds) = ();
+my($startdir) = undef;
for(my $i = 0; $i <= $#ARGV; ++$i) {
if ($ARGV[$i] eq '-a') {
@@ -490,6 +493,15 @@ for(my $i = 0; $i <= $#ARGV; ++$i) {
elsif ($ARGV[$i] eq '-v') {
$verbose = 1;
}
+ elsif ($ARGV[$i] eq '-s') {
+ ++$i;
+ if (defined $ARGV[$i]) {
+ $startdir = $ARGV[$i];
+ }
+ else {
+ usageAndExit('-s requires an argument');
+ }
+ }
elsif ($ARGV[$i] =~ /^-/) {
usageAndExit('Unknown option: ' . $ARGV[$i]);
}
@@ -498,6 +510,13 @@ for(my $i = 0; $i <= $#ARGV; ++$i) {
}
}
+if (defined $startdir && !chdir($startdir)) {
+ print "ERROR: Unable to change directory to $startdir\n";
+ exit(1);
+}
+
+$builddir = getcwd() . '/build' if (!defined $builddir);
+
if (index($builddir, getcwd()) == 0) {
$exclude = substr($builddir, length(getcwd()) + 1);
$exclude =~ s/([\+\-\\\$\[\]\(\)\.])/\\$1/g;