X-Git-Url: https://git.jsancho.org/?p=guile-click.git;a=blobdiff_plain;f=click.scm;h=c4f16b01884687a0ac26f097530937a6caadcc06;hp=1f6c69a7c4f50ec63eedff6f3e074c68580b3954;hb=487cd0d4c6c0ee9681cc132e5316ded7fc5dd0f7;hpb=986fe49efb25343011f28262cd2b7afbf81dd78e diff --git a/click.scm b/click.scm index 1f6c69a..c4f16b0 100644 --- 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) @@ -42,11 +43,12 @@ (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)))))