about summary refs log tree commit diff
path: root/src/libstore/derivations.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-12-01T21·00+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-12-01T21·00+0000
commitfcd9900d74b0eb3d57402c448ede2a411133fa46 (patch)
tree642df2be381e3c9b239ca59c170052a43113fa30 /src/libstore/derivations.cc
parenta824d58b566752b2a89a718fd628053754968d72 (diff)
* Replace read-only calls to addTextToStore.
Diffstat (limited to 'src/libstore/derivations.cc')
-rw-r--r--src/libstore/derivations.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libstore/derivations.cc b/src/libstore/derivations.cc
index d159d47a5e..aea95ef314 100644
--- a/src/libstore/derivations.cc
+++ b/src/libstore/derivations.cc
@@ -1,6 +1,7 @@
 #include "derivations.hh"
 #include "store-api.hh"
 #include "aterm.hh"
+#include "globals.hh"
 
 #include "derivations-ast.hh"
 #include "derivations-ast.cc"
@@ -25,8 +26,11 @@ Path writeDerivation(const Derivation & drv, const string & name)
     /* Note that the outputs of a derivation are *not* references
        (that can be missing (of course) and should not necessarily be
        held during a garbage collection). */
-    return store->addTextToStore(name + drvExtension,
-        atPrint(unparseDerivation(drv)), references);
+    string suffix = name + drvExtension;
+    string contents = atPrint(unparseDerivation(drv));
+    return readOnlyMode
+        ? computeStorePathForText(suffix, contents)
+        : store->addTextToStore(suffix, contents, references);
 }