aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-11-23 17:37:29 +0100
committerLudovic Courtès <ludo@gnu.org>2015-11-23 17:48:35 +0100
commit86cdfc451bad61faa66f100208c95f3275050957 (patch)
tree6bf201b92611a5e196c58e03c4b2dadebcbb8d0e
parent71ae18ee52757eb60be50bb2e50bab5e84d0f097 (diff)
downloadguix-86cdfc451bad61faa66f100208c95f3275050957.tar
guix-86cdfc451bad61faa66f100208c95f3275050957.tar.gz
guix download: Fail when more than one URL is passed.
* guix/scripts/download.scm (guix-download)[parse-option]: Call 'leave' when passed an extra argument. * tests/guix-download.sh: Add test.
-rw-r--r--guix/scripts/download.scm3
-rw-r--r--tests/guix-download.sh6
2 files changed, 8 insertions, 1 deletions
diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm
index b81295e5d9..6ebc14f573 100644
--- a/guix/scripts/download.scm
+++ b/guix/scripts/download.scm
@@ -96,6 +96,9 @@ Supported formats: 'nix-base32' (default), 'base32', and 'base16'
(lambda (opt name arg result)
(leave (_ "~A: unrecognized option~%") name))
(lambda (arg result)
+ (when (assq 'argument result)
+ (leave (_ "~A: extraneous argument~%") arg))
+
(alist-cons 'argument arg result))
%default-options))
diff --git a/tests/guix-download.sh b/tests/guix-download.sh
index 7af6f181f6..6283772c48 100644
--- a/tests/guix-download.sh
+++ b/tests/guix-download.sh
@@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2015 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -34,3 +34,7 @@ then false; else true; fi
# This one should succeed.
guix download "file://$abs_top_srcdir/README"
+
+# This one should fail.
+if guix download "file:///does-not-exist" "file://$abs_top_srcdir/README"
+then false; else true; fi