diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2018-09-05T19·22+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2018-09-05T19·22+0200 |
commit | 2d91012754dbe707fe60a0017496f78076d6694a (patch) | |
tree | 3d2fd7c44d632dd48697af5be5dc350c8a597492 /src/libstore | |
parent | e0ddabb0d674c597ae8b0dc3eb6b8511bc9a1df1 (diff) |
fetchurl: Respect unpack
Fixes #2393.
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/builtins/fetchurl.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libstore/builtins/fetchurl.cc b/src/libstore/builtins/fetchurl.cc index b4dcb35f951a..92aec63a0379 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); |