aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-02-02 12:20:28 +0100
committerEelco Dolstra <edolstra@gmail.com>2017-02-02 12:20:28 +0100
commit1351b0df87a0984914769c5dc76489618b3a3fec (patch)
tree69ecfd62a1c5ff04000e08335e7707eb673e53da /src/libstore
parent7a65b2470eb53a320749d76746fbf65790183d9d (diff)
exportReferencesGraph: Only export in JSON format when in structured mode
This prevents breaking compatibility with builders that read "closure.*", since they would accidentally pick up the new JSON files.
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/build.cc26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 40927c063..5d6fff4e3 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -2276,18 +2276,24 @@ void DerivationGoal::doExportReferencesGraph()
}
}
- /* Write closure info to <fileName>. */
- writeFile(tmpDir + "/" + fileName,
- worker.store.makeValidityRegistration(paths, false, false));
+ if (!drv->env.count("__json")) {
+
+ /* Write closure info to <fileName>. */
+ writeFile(tmpDir + "/" + fileName,
+ worker.store.makeValidityRegistration(paths, false, false));
+
+ } else {
+
+ /* Write a more comprehensive JSON serialisation to
+ <fileName>. */
+ std::ostringstream str;
+ {
+ JSONPlaceholder jsonRoot(str, true);
+ worker.store.pathInfoToJSON(jsonRoot, paths, false, true);
+ }
+ writeFile(tmpDir + "/" + fileName, str.str());
- /* Write a more comprehensive JSON serialisation to
- <fileName>.json. */
- std::ostringstream str;
- {
- JSONPlaceholder jsonRoot(str, true);
- worker.store.pathInfoToJSON(jsonRoot, paths, false, true);
}
- writeFile(tmpDir + "/" + fileName + ".json", str.str());
}
}