aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/command-ref/nix-prefetch-url.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/command-ref/nix-prefetch-url.xml')
-rw-r--r--doc/manual/command-ref/nix-prefetch-url.xml94
1 files changed, 94 insertions, 0 deletions
diff --git a/doc/manual/command-ref/nix-prefetch-url.xml b/doc/manual/command-ref/nix-prefetch-url.xml
new file mode 100644
index 000000000..885c958ce
--- /dev/null
+++ b/doc/manual/command-ref/nix-prefetch-url.xml
@@ -0,0 +1,94 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ version="5.0"
+ xml:id="sec-nix-prefetch-url">
+
+<refmeta>
+ <refentrytitle>nix-prefetch-url</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="source">Nix</refmiscinfo>
+ <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo>
+</refmeta>
+
+<refnamediv>
+ <refname>nix-prefetch-url</refname>
+ <refpurpose>copy a file from a URL into the store and print its hash</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>nix-prefetch-url</command>
+ <arg><option>--type</option> <replaceable>hashAlgo</replaceable></arg>
+ <arg choice='plain'><replaceable>url</replaceable></arg>
+ <arg><replaceable>hash</replaceable></arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+
+
+<refsection><title>Description</title>
+
+<para>The command <command>nix-prefetch-url</command> downloads the
+file referenced by the URL <replaceable>url</replaceable>, prints its
+cryptographic hash, and copies it into the Nix store. The file name
+in the store is
+<filename><replaceable>hash</replaceable>-<replaceable>baseName</replaceable></filename>,
+where <replaceable>baseName</replaceable> is everything following the
+final slash in <replaceable>url</replaceable>.</para>
+
+<para>This command is just a convenience for Nix expression writers.
+Often a Nix expression fetches some source distribution from the
+network using the <literal>fetchurl</literal> expression contained in
+Nixpkgs. However, <literal>fetchurl</literal> requires a
+cryptographic hash. If you don't know the hash, you would have to
+download the file first, and then <literal>fetchurl</literal> would
+download it again when you build your Nix expression. Since
+<literal>fetchurl</literal> uses the same name for the downloaded file
+as <command>nix-prefetch-url</command>, the redundant download can be
+avoided.</para>
+
+<para>If <replaceable>hash</replaceable> is specified, then a download
+is not performed if the Nix store already contains a file with the
+same hash and base name. Otherwise, the file is downloaded, and an
+error if signaled if the actual hash of the file does not match the
+specified hash.</para>
+
+<para>This command prints the hash on standard output. Additionally,
+if the environment variable <envar>PRINT_PATH</envar> is set, the path
+of the downloaded file in the Nix store is also printed.</para>
+
+</refsection>
+
+
+<refsection><title>Options</title>
+
+<variablelist>
+
+ <varlistentry><term><option>--type</option> <replaceable>hashAlgo</replaceable></term>
+
+ <listitem><para>Use the specified cryptographic hash algorithm,
+ which can be one of <literal>md5</literal>,
+ <literal>sha1</literal>, and
+ <literal>sha256</literal>.</para></listitem>
+
+ </varlistentry>
+
+</variablelist>
+
+</refsection>
+
+
+<refsection><title>Examples</title>
+
+<screen>
+$ nix-prefetch-url ftp://ftp.nluug.nl/pub/gnu/make/make-3.80.tar.bz2
+0bbd1df101bc0294d440471e50feca71
+
+$ 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</screen>
+
+</refsection>
+
+
+</refentry>