Merge branch 'master' into 2221-complete-docker
[arvados.git] / sdk / cli / bin / crunch-job
index bd9db89b13d44630af74962b714f0897e2a042ef..87b4fbf8a5385f498c2e016f9225d467a3dd664a 100755 (executable)
@@ -331,12 +331,11 @@ my $skip_install = ($local_job && $Job->{script_version} =~ m{^/});
 if ($skip_install)
 {
   $ENV{"CRUNCH_SRC"} = $Job->{script_version};
-  system("virtualenv", "$ENV{CRUNCH_TMP}/opt") == 0
-      or croak ("virtualenv $ENV{CRUNCH_TMP}/opt failed: exit ".($?>>8));
-  for my $src_path ("$ENV{CRUNCH_SRC}/arvados/sdk/python",
-                    "$ENV{CRUNCH_SRC}/sdk/python") {
+  for my $src_path ("$ENV{CRUNCH_SRC}/arvados/sdk/python") {
     if (-d $src_path) {
-      system ("cd $src_path && \$CRUNCH_TMP/opt/bin/python setup.py install")
+      system("virtualenv", "$ENV{CRUNCH_TMP}/opt") == 0
+          or croak ("virtualenv $ENV{CRUNCH_TMP}/opt failed: exit ".($?>>8));
+      system ("cd $src_path && ./build.sh && \$CRUNCH_TMP/opt/bin/python setup.py install")
           == 0
           or croak ("setup.py in $src_path failed: exit ".($?>>8));
     }
@@ -1388,10 +1387,13 @@ open STDOUT, ">", "$destdir.log";
 open STDERR, ">&STDOUT";
 
 mkdir $destdir;
-open TARX, "|-", "tar", "-C", $destdir, "-xf", "-";
-print TARX <DATA>;
-if(!close(TARX)) {
-  die "'tar -C $destdir -xf -' exited $?: $!";
+my @git_archive_data = <DATA>;
+if (@git_archive_data) {
+  open TARX, "|-", "tar", "-C", $destdir, "-xf", "-";
+  print TARX @git_archive_data;
+  if(!close(TARX)) {
+    die "'tar -C $destdir -xf -' exited $?: $!";
+  }
 }
 
 my $pwd;
@@ -1399,10 +1401,10 @@ chomp ($pwd = `pwd`);
 my $install_dir = $ENV{"CRUNCH_INSTALL"} || "$pwd/opt";
 mkdir $install_dir;
 
-shell_or_die ("virtualenv", $install_dir);
-for my $src_path ("$destdir/arvados/sdk/python", "$destdir/sdk/python") {
+for my $src_path ("$destdir/arvados/sdk/python") {
   if (-d $src_path) {
-    shell_or_die ("cd $src_path && $install_dir/bin/python setup.py install");
+    shell_or_die ("virtualenv", $install_dir);
+    shell_or_die ("cd $src_path && ./build.sh && $install_dir/bin/python setup.py install");
   }
 }