Index: tools/isolate/isolate.py |
diff --git a/tools/isolate/isolate.py b/tools/isolate/isolate.py |
index 29d883ed681f493bb4c3a76ef268516952551750..e1a93f75245cec856ab4a6d773206c93b398ed4e 100755 |
--- a/tools/isolate/isolate.py |
+++ b/tools/isolate/isolate.py |
@@ -104,9 +104,9 @@ def isolate(outdir, resultfile, indir, infiles, mode, read_only, cmd): |
dictfiles = tree_creator.process_inputs( |
indir, infiles, mode == 'hashtable', read_only) |
- if not outdir: |
- outdir = os.path.dirname(resultfile) |
- result = mode_fn(outdir, indir, dictfiles, read_only, cmd, relative_cwd) |
+ result = mode_fn( |
+ outdir, indir, dictfiles, read_only, cmd, relative_cwd, |
+ os.path.dirname(resultfile)) |
if result == 0: |
# Saves the resulting file. |
@@ -120,13 +120,16 @@ def isolate(outdir, resultfile, indir, infiles, mode, read_only, cmd): |
return result |
-def MODEcheck(outdir, indir, dictfiles, read_only, cmd, relative_cwd): |
+def MODEcheck( |
+ outdir, indir, dictfiles, read_only, cmd, relative_cwd, result_path): |
"""No-op.""" |
return 0 |
-def MODEhashtable(outdir, indir, dictfiles, read_only, cmd, relative_cwd): |
+def MODEhashtable( |
+ outdir, indir, dictfiles, read_only, cmd, relative_cwd, result_path): |
"""Ignores read_only, cmd and relative_cwd.""" |
+ outdir = outdir or result_path |
for relfile, properties in dictfiles.iteritems(): |
infile = os.path.join(indir, relfile) |
outfile = os.path.join(outdir, properties['sha-1']) |
@@ -139,10 +142,15 @@ def MODEhashtable(outdir, indir, dictfiles, read_only, cmd, relative_cwd): |
return 0 |
-def MODEremap(outdir, indir, dictfiles, read_only, cmd, relative_cwd): |
- """Ignores cmd and relative_cwd.""" |
+def MODEremap( |
+ outdir, indir, dictfiles, read_only, cmd, relative_cwd, result_path): |
+ """Ignores outdir, cmd and relative_cwd.""" |
if not outdir: |
outdir = tempfile.mkdtemp(prefix='isolate') |
+ print 'Remapping into %s' % outdir |
+ if len(os.listdir(outdir)): |
+ print 'Can\'t remap in a non-empty directory' |
+ return 1 |
tree_creator.recreate_tree( |
outdir, indir, dictfiles.keys(), tree_creator.HARDLINK) |
if read_only: |
@@ -150,9 +158,9 @@ def MODEremap(outdir, indir, dictfiles, read_only, cmd, relative_cwd): |
return 0 |
-def MODErun(outdir, indir, dictfiles, read_only, cmd, relative_cwd): |
- """Ignores outdir and always uses a temporary directory.""" |
- outdir = None |
+def MODErun( |
+ outdir, indir, dictfiles, read_only, cmd, relative_cwd, result_path): |
+ """Always uses a temporary directory.""" |
try: |
outdir = tempfile.mkdtemp(prefix='isolate') |
tree_creator.recreate_tree( |