aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-09-05 21:22:37 +0200
committerEelco Dolstra <edolstra@gmail.com>2018-09-05 21:22:37 +0200
commit2d91012754dbe707fe60a0017496f78076d6694a (patch)
tree3d2fd7c44d632dd48697af5be5dc350c8a597492
parente0ddabb0d674c597ae8b0dc3eb6b8511bc9a1df1 (diff)
fetchurl: Respect unpack
Fixes #2393.
-rw-r--r--src/libstore/builtins/fetchurl.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libstore/builtins/fetchurl.cc b/src/libstore/builtins/fetchurl.cc
index b4dcb35f9..92aec63a0 100644
--- a/src/libstore/builtins/fetchurl.cc
+++ b/src/libstore/builtins/fetchurl.cc
@@ -24,6 +24,7 @@ void builtinFetchurl(const BasicDerivation & drv, const std::string & netrcData)
Path storePath = getAttr("out");
auto mainUrl = getAttr("url");
+ bool unpack = get(drv.env, "unpack", "") == "1";
/* Note: have to use a fresh downloader here because we're in
a forked process. */
@@ -40,12 +41,12 @@ void builtinFetchurl(const BasicDerivation & drv, const std::string & netrcData)
request.decompress = false;
auto decompressor = makeDecompressionSink(
- hasSuffix(mainUrl, ".xz") ? "xz" : "none", sink);
+ unpack && hasSuffix(mainUrl, ".xz") ? "xz" : "none", sink);
downloader->download(std::move(request), *decompressor);
decompressor->finish();
});
- if (get(drv.env, "unpack", "") == "1")
+ if (unpack)
restorePath(storePath, *source);
else
writeFile(storePath, *source);