aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-01-24 22:00:54 +0100
committerLudovic Courtès <ludo@gnu.org>2013-01-24 23:33:51 +0100
commit3b9c00208868a75e6b77445fcd33d82536448bb2 (patch)
tree4613bbd9dc4b9e9f0fb524354e828c546cf1a783
parent313b90125576bfe44de518c8898dfa2d8089f267 (diff)
downloadguix-3b9c00208868a75e6b77445fcd33d82536448bb2.tar
guix-3b9c00208868a75e6b77445fcd33d82536448bb2.tar.gz
guix-package: Error out when passed a non-option argument.
* guix-package.in (guix-package)[parse-options]: Call `leave' when passed a non-option argument. Reported by Andreas Enge <andreas@enge.fr>. * tests/guix-package.sh: Add test.
-rw-r--r--guix-package.in2
-rw-r--r--tests/guix-package.sh3
2 files changed, 4 insertions, 1 deletions
diff --git a/guix-package.in b/guix-package.in
index 85ac358555..37a1df0c11 100644
--- a/guix-package.in
+++ b/guix-package.in
@@ -326,7 +326,7 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
(lambda (opt name arg result)
(leave (_ "~A: unrecognized option~%") name))
(lambda (arg result)
- (alist-cons 'argument arg result))
+ (leave (_ "~A: extraneous argument~%") arg))
%default-options))
(define (guile-missing?)
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 603ae98d74..02ece68045 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -139,3 +139,6 @@ fi
# Failed attempt to roll back.
if guix-package --bootstrap --roll-back;
then false; else true; fi
+
+# Extraneous argument.
+! guix-package install foo-bar