summary refs log tree commit diff
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.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