diff --git a/doc/manual/command-ref/nix-prefetch-url.xml b/doc/manual/command-ref/nix-prefetch-url.xml index 5d1ab6931..0f24bef39 100644 --- a/doc/manual/command-ref/nix-prefetch-url.xml +++ b/doc/manual/command-ref/nix-prefetch-url.xml @@ -3,7 +3,7 @@ xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" xml:id="sec-nix-prefetch-url"> - + nix-prefetch-url 1 @@ -54,8 +54,8 @@ error if signaled if the actual hash of the file does not match the specified hash. This command prints the hash on standard output. Additionally, -if the environment variable PRINT_PATH is set, the path -of the downloaded file in the Nix store is also printed. +if the option is used, the path of the +downloaded file in the Nix store is also printed. @@ -63,7 +63,7 @@ of the downloaded file in the Nix store is also printed. Options - + hashAlgo Use the specified cryptographic hash algorithm, @@ -73,6 +73,13 @@ of the downloaded file in the Nix store is also printed. + + + Print the store path of the downloaded file on + standard output. + + + @@ -81,14 +88,14 @@ of the downloaded file in the Nix store is also printed. Examples -$ nix-prefetch-url ftp://ftp.nluug.nl/pub/gnu/make/make-3.80.tar.bz2 -0bbd1df101bc0294d440471e50feca71 +$ nix-prefetch-url ftp://ftp.gnu.org/pub/gnu/hello/hello-2.10.tar.gz +0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i -$ PRINT_PATH=1 nix-prefetch-url ftp://ftp.nluug.nl/pub/gnu/make/make-3.80.tar.bz2 -0bbd1df101bc0294d440471e50feca71 -/nix/store/wvyz8ifdn7wyz1p3pqyn0ra45ka2l492-make-3.80.tar.bz2 +$ nix-prefetch-url --print-path mirror://gnu/hello/hello-2.10.tar.gz +0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i +/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz - + diff --git a/src/nix-prefetch-url/nix-prefetch-url.cc b/src/nix-prefetch-url/nix-prefetch-url.cc index bd52df1c7..cb6078fca 100644 --- a/src/nix-prefetch-url/nix-prefetch-url.cc +++ b/src/nix-prefetch-url/nix-prefetch-url.cc @@ -48,6 +48,7 @@ int main(int argc, char * * argv) HashType ht = htSHA256; std::vector args; Strings searchPath; + bool printPath = getEnv("PRINT_PATH") != ""; parseCmdLine(argc, argv, [&](Strings::iterator & arg, const Strings::iterator & end) { if (*arg == "--help") @@ -60,6 +61,8 @@ int main(int argc, char * * argv) if (ht == htUnknown) throw UsageError(format("unknown hash type ‘%1%’") % s); } + else if (*arg == "--print-path") + printPath = true; else if (parseSearchPathArg(arg, end, searchPath)) ; else if (*arg != "" && arg->at(0) == '-') @@ -123,10 +126,11 @@ int main(int argc, char * * argv) storePath = store->addToStore(name, tmpFile, false, ht); } - printMsg(lvlInfo, format("path is ‘%1%’") % storePath); + if (!printPath) + printMsg(lvlInfo, format("path is ‘%1%’") % storePath); std::cout << printHash16or32(hash) << std::endl; - if (getEnv("PRINT_PATH") != "") + if (printPath) std::cout << storePath << std::endl; }); }