about summary refs log tree commit diff
path: root/doc/manual/nix-prefetch-url.xml
blob: a6b3711e3373bad1c3ca508d060acb519f1d6ecc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<refentry>
  <refnamediv>
    <refname>nix-prefetch-url</refname>
    <refpurpose>copy a file from a URL into the store and print its MD5 hash</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>nix-prefetch-url</command>
      <arg choice='plain'><replaceable>url</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 MD5 cryptographic hash code, 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 to Nix expression writers.
      Often a Nix expressions fetch some source distribution from the
      network using the <literal>fetchurl</literal> expression
      contained in <literal>nixpkgs</literal>.  However,
      <literal>fetchurl</literal> requires an MD5 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>

  </refsection>

  <refsection>
    <title>Examples</title>

    <screen>
$ nix-prefetch-url ftp://ftp.nluug.nl/pub/gnu/make/make-3.80.tar.bz2
...
file has hash 0bbd1df101bc0294d440471e50feca71
...</screen>

  </refsection>
    
</refentry>