diff options
author | eldritch horrors <pennae@lix.systems> | 2024-03-04 08:24:18 +0100 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-03-04 08:24:18 +0100 |
commit | fad1a25e17350e67fc9857ba6ec80ac829efd2ed (patch) | |
tree | 9170ac87aeab6210bad7d4767e85812b6fbb376f /src | |
parent | b6bb869e52bc4990aeac09aa64025e66e02b780e (diff) |
Merge pull request #9805 from yshui/prefetch-unpack
Add --unpack to nix store prefetch-file
(cherry picked from commit f51409cf98e9b18f27a6d0240a0aa0c3f37c2fd0)
Change-Id: I974b04f3efc8b210a9399a71d3704490cfc2c80c
Diffstat (limited to 'src')
-rw-r--r-- | src/nix/prefetch.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/nix/prefetch.cc b/src/nix/prefetch.cc index b67d381ca..9f2d6cc57 100644 --- a/src/nix/prefetch.cc +++ b/src/nix/prefetch.cc @@ -257,6 +257,7 @@ struct CmdStorePrefetchFile : StoreCommand, MixJSON { std::string url; bool executable = false; + bool unpack = false; std::optional<std::string> name; HashType hashType = htSHA256; std::optional<Hash> expectedHash; @@ -289,6 +290,14 @@ struct CmdStorePrefetchFile : StoreCommand, MixJSON .handler = {&executable, true}, }); + addFlag({ + .longName = "unpack", + .description = + "Unpack the archive (which must be a tarball or zip file) and add " + "the result to the Nix store.", + .handler = {&unpack, true}, + }); + expectArg("url", &url); } @@ -305,7 +314,7 @@ struct CmdStorePrefetchFile : StoreCommand, MixJSON } void run(ref<Store> store) override { - auto [storePath, hash] = prefetchFile(store, url, name, hashType, expectedHash, false, executable); + auto [storePath, hash] = prefetchFile(store, url, name, hashType, expectedHash, unpack, executable); if (json) { auto res = nlohmann::json::object(); |