summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/scripts/edit.scm13
1 files changed, 10 insertions, 3 deletions
diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm
index ce3ac4146d..555796a69c 100644
--- a/guix/scripts/edit.scm
+++ b/guix/scripts/edit.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -74,9 +74,16 @@ line."
 
 
 (define (guix-edit . args)
+  (define (parse-arguments)
+    ;; Return the list of package names.
+    (args-fold* args %options
+                (lambda (opt name arg result)
+                  (leave (_ "~A: unrecognized option~%") name))
+                cons
+                '()))
+
   (with-error-handling
-    (let* ((specs    (parse-command-line args %options '(())
-                                         #:argument-handler cons))
+    (let* ((specs    (reverse (parse-arguments)))
            (packages (map specification->package specs)))
       (for-each (lambda (package)
                   (unless (package-location package)