~ 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