diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-10-23 18:04:00 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-10-23 18:04:11 +0200 |
commit | a28b4445a4eb8108dfc028083d3939d5f3a42685 (patch) | |
tree | bbf989d956ab6b3ea2830d75c79d5adc69c7664f | |
parent | 2980d1fba97069805c3649c5d99d0356bce6c303 (diff) |
nix-prefetch-url: Improve option handling
-rw-r--r-- | doc/manual/nix-hash.xml | 5 | ||||
-rw-r--r-- | doc/manual/nix-prefetch-url.xml | 24 | ||||
-rwxr-xr-x | scripts/nix-prefetch-url.in | 23 |
3 files changed, 42 insertions, 10 deletions
diff --git a/doc/manual/nix-hash.xml b/doc/manual/nix-hash.xml index 007fc5410..af4e361ff 100644 --- a/doc/manual/nix-hash.xml +++ b/doc/manual/nix-hash.xml @@ -91,8 +91,9 @@ cryptographic hash as <literal>nix-store --dump <varlistentry><term><option>--type</option> <replaceable>hashAlgo</replaceable></term> - <listitem><para>Specify a cryptographic hash, which can be one of - <literal>md5</literal>, <literal>sha1</literal>, and + <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> diff --git a/doc/manual/nix-prefetch-url.xml b/doc/manual/nix-prefetch-url.xml index 0d953e946..c416e675b 100644 --- a/doc/manual/nix-prefetch-url.xml +++ b/doc/manual/nix-prefetch-url.xml @@ -18,6 +18,7 @@ <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> @@ -45,11 +46,6 @@ download it again when you build your Nix expression. Since as <command>nix-prefetch-url</command>, the redundant download can be avoided.</para> -<para>The environment variable <envar>NIX_HASH_ALGO</envar> specifies -which hash algorithm to use. It can be either <literal>md5</literal>, -<literal>sha1</literal>, or <literal>sha256</literal>. The default is -<literal>sha256</literal>.</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 @@ -63,6 +59,24 @@ 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> diff --git a/scripts/nix-prefetch-url.in b/scripts/nix-prefetch-url.in index 64102e8ae..bcd9197bc 100755 --- a/scripts/nix-prefetch-url.in +++ b/scripts/nix-prefetch-url.in @@ -8,11 +8,28 @@ use Nix::Store; use Nix::Config; use Nix::Utils; -my $url = shift; -my $expHash = shift; -my $hashType = $ENV{'NIX_HASH_ALGO'} || "sha256"; +my $hashType = $ENV{'NIX_HASH_ALGO'} || "sha256"; # obsolete my $cacheDir = $ENV{'NIX_DOWNLOAD_CACHE'}; +my @args; +my $arg; +while ($arg = shift) { + if ($arg eq "--help") { + exec "man nix-prefetch-url" or die; + } elsif ($arg eq "--type") { + $hashType = shift; + die "$0: `$arg' requires an argument\n" unless defined $hashType; + } elsif (substr($arg, 0, 1) eq "-") { + die "$0: unknown flag `$arg'\n"; + } else { + push @args, $arg; + } +} + +my $url = $args[0]; +my $expHash = $args[1]; + + if (!defined $url || $url eq "") { print STDERR <<EOF Usage: nix-prefetch-url URL [EXPECTED-HASH] |