~ chicken-core (chicken-5) 4ebabf80db35ce23ce99fd72caa8e0dc7f112609
commit 4ebabf80db35ce23ce99fd72caa8e0dc7f112609 Author: Evan Hanson <evhan@thunktastic.com> AuthorDate: Wed Dec 7 18:03:46 2011 -0600 Commit: Christian Kellermann <ckeen@pestilenz.org> CommitDate: Sat Dec 10 11:07:50 2011 +0100 -show-depends flag for chicken-install This option fetches and displays egg dependencies, to accompany -show-foreign-depends. Signed-off-by: Christian Kellermann <ckeen@pestilenz.org> Signed-off-by: Moritz Heidkamp <moritz@twoticketsplease.de> diff --git a/chicken-install.scm b/chicken-install.scm index c01ac4dc..f8c39589 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -107,6 +107,7 @@ (define *keep-going* #f) (define *override* '()) (define *reinstall* #f) + (define *show-depends* #f) (define *show-foreign-depends* #f) (define *hacks* '()) @@ -400,21 +401,26 @@ ((pair? egg) (cdr egg)) (else #f)))) - (define (show-foreign-depends eggs) + (define (show-depends eggs . type) (print "fetching meta information...") (retrieve eggs) - (print "Foreign dependencies as reported in .meta:") - (for-each - (lambda (egg) - (and-let* ((meta-file (make-pathname (cadr egg) (car egg) "meta")) - (m (and (file-exists? meta-file) (with-input-from-file meta-file read))) - (ds (deps 'foreign-depends m))) - (unless (null? ds) - (print (car egg) ": ") - (for-each (cut print "\t" <>) (deps 'foreign-depends m))))) - *eggs+dirs+vers*) - (cleanup) - (exit 0)) + (let ((type (optional type 'depends))) + (printf "~a dependencies as reported in .meta:\n" + (case type ((depends) "Egg") + ((foreign-depends) "Foreign"))) + (for-each + (lambda (egg) + (and-let* ((meta-file (make-pathname (cadr egg) (car egg) "meta")) + (m (and (file-exists? meta-file) (with-input-from-file meta-file read))) + (ds (if (eq? type 'depends) + (append (deps 'needs m) (deps type m)) + (deps type m)))) + (unless (null? ds) + (print (car egg) ": ") + (for-each (cut print "\t" <>) ds)))) + *eggs+dirs+vers*) + (cleanup) + (exit 0))) (define (retrieve eggs) (print "retrieving ...") @@ -775,6 +781,7 @@ usage: chicken-install [OPTION | EXTENSION[:VERSION]] ... -scan DIRECTORY scan local directory for highest available egg versions -override FILENAME override versions for installed eggs with information from file -csi FILENAME use given pathname for invocations of "csi" + -show-depends display a list of egg dependencies for the given egg(s) -show-foreign-depends display a list of foreign dependencies for the given egg(s) chicken-install recognizes the http_proxy, and proxy_auth environment variables, if set. @@ -852,8 +859,10 @@ EOF (display (list-available-extensions *default-transport* *default-location*))) + (*show-depends* + (show-depends eggs 'depends)) (*show-foreign-depends* - (show-foreign-depends eggs)) + (show-depends eggs 'foreign-depends)) (else (install (apply-mappings (reverse eggs))))) )))) @@ -973,6 +982,9 @@ EOF (unless (pair? (cdr args)) (usage 1)) (set! *password* (cadr args)) (loop (cddr args) eggs)) + ((string=? "-show-depends" arg) + (set! *show-depends* #t) + (loop (cdr args) eggs)) ((string=? "-show-foreign-depends" arg) (set! *show-foreign-depends* #t) (loop (cdr args) eggs))Trap