]> git.jsancho.org Git - guile-click.git/blobdiff - click.scm
Nested commands
[guile-click.git] / click.scm
index 1f6c69a7c4f50ec63eedff6f3e074c68580b3954..c4f16b01884687a0ac26f097530937a6caadcc06 100644 (file)
--- a/click.scm
+++ b/click.scm
@@ -18,6 +18,7 @@
 
 
 (define-module (click)
+  #:use-module (ice-9 getopt-long)
   #:use-module (srfi srfi-1)
   #:use-module (click args)
   #:use-module (click command)
          (new-command (make-command name click-option-spec help procedure commands)))
     (let ((click-manager
            (lambda (args)
+            (when (not (program-name))
+              (program-name (car args)))
              (let ((values (parse-args args click-option-spec)))
                ;; Call current command
                (cond ((option-ref values 'help #f)
-                      (let ((program-name (car args)))
-                        (display-help program-name new-command)))
+                     (display-help new-command))
                      (else
                       (when procedure
                         (apply procedure (map cdr (get-values option-spec values))))
@@ -61,6 +63,7 @@
   (let ((next-command-args (cdar values)))
     (when (not (null? next-command-args))
       (let* ((next-command-name (car next-command-args))
-             (next-command (find (lambda (command) (
-        (display next-command-args)(newline)
-        (display next-command-name) (newline)))))
+             (next-command (find (lambda (command)
+                                  (equal? (command-name command) next-command-name))
+                                commands)))
+       (next-command next-command-args)))))