diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/qsub.nix | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/qsub.nix b/lib/qsub.nix index 4ef6dbc..f7b3c3e 100644 --- a/lib/qsub.nix +++ b/lib/qsub.nix @@ -5,17 +5,17 @@ args = let script = writeScript "qsub-script" '' #!${stdenv.shell} - while [ ! -e ${tmpDir}/$PBS_JOBID ] ; do + while [ ! -e ${tmpDir}/qsub-$PBS_JOBID ] ; do sleep ${toString sleepTime} done - TMPDIR=${tmpDir}/$PBS_JOBID + set -a + . ${tmpDir}/qsub-$PBS_JOBID/nix-set + set +a + TMPDIR=${tmpDir}/qsub-$PBS_JOBID TEMP=$TMPDIR TMP=$TMPDIR NIX_BUILD_TOP=$TMPDIR cd $TMPDIR - set -a - . nix-set - set +a ${builder} ${lib.escapeShellArgs args} > qsub-stdout 2> qsub-stderr echo $? > qsub-exit ''; @@ -46,15 +46,15 @@ } trap cleanup INT TERM EXIT - cp -r $TMPDIR ${tmpDir}/$id - set > ${tmpDir}/$id/nix-set + cp -r $TMPDIR ${tmpDir}/qsub-$id + set > ${tmpDir}/qsub-$id/nix-set until qstat -f ''${id%%.} 2>&1 | grep "\(Unknown Job\|job_state = C\)" > /dev/null ; do sleep ${toString sleepTime} done - cat ${tmpDir}/$id/qsub-stderr >&2 - cat ${tmpDir}/$id/qsub-stdout - if [ -e ${tmpDir}/$id/qsub-exit ]; then - exitCode=$(cat ${tmpDir}/$id/qsub-exit) + cat ${tmpDir}/qsub-$id/qsub-stderr >&2 + cat ${tmpDir}/qsub-$id/qsub-stdout + if [ -e ${tmpDir}/qsub-$id/qsub-exit ]; then + exitCode=$(cat ${tmpDir}/qsub-$id/qsub-exit) else exitCode=1 fi |