~ chicken-core (chicken-5) 6cb952dc4dd3fe73951cf8419595d95340589d1f
commit 6cb952dc4dd3fe73951cf8419595d95340589d1f
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Feb 16 00:08:50 2017 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Thu Feb 16 00:08:50 2017 +0100
added support for "chicken" subdir
diff --git a/chicken-install.scm b/chicken-install.scm
index d963e599..3c20ff8a 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -82,6 +82,7 @@
(define host-extension cross-chicken)
(define target-extension cross-chicken)
(define sudo-install #f)
+(define sudo-program (or (get-environment-variable "SUDO") "sudo"))
(define update-module-db #f)
(define purge-mode #f)
(define tests-failed #f)
@@ -399,9 +400,6 @@
(lversion (or (get-egg-property info 'version)
(and (file-exists? vfile)
(with-input-from-file vfile read)))))
- ;; yes, awkward - we must make sure locally available eggs are always
- ;; fetched (check-remote-version takes care of that), so only check
- ;; the timestamp, if it exists (as it does for downloaded eggs)
(cond ((if (file-exists? timestamp)
(and (> (- now (with-input-from-file timestamp read)) +one-hour+)
(not (check-remote-version name version lversion
@@ -845,7 +843,10 @@
(d "running script ~a~%" script)
(if (eq? platform 'windows)
(exec script stop)
- (exec (string-append (if sudo "sudo " "") "sh " script) stop)))))
+ (exec (string-append (if sudo
+ (string-append sudo-program " ")
+ "")
+ "sh " script) stop)))))
(define (write-info name info mode)
(d "writing info for egg ~a~%" name info)
@@ -929,14 +930,19 @@
(purge-mode (purge-cache eggs))
(print-repository (print (repo-path)))
((null? eggs)
- (cond (list-versions-only (print "no eggs specified"))
- (else
- (set! canonical-eggs
- (map (lambda (fname)
- (list (pathname-file fname) (current-directory) #f))
- (glob "*.egg")))
- (retrieve-eggs '())
- (unless retrieve-only (install-eggs)))))
+ (if list-versions-only
+ (print "no eggs specified")
+ (let ((files (append (glob "*.egg")
+ (if (and (file-exists? "chicken")
+ (directory? "chicken"))
+ (glob "chicken/*.egg")
+ '()))))
+ (set! canonical-eggs
+ (map (lambda (fname)
+ (list (pathname-file fname) (current-directory) #f))
+ files))
+ (retrieve-eggs '())
+ (unless retrieve-only (install-eggs)))))
(else
(let ((eggs (apply-mappings eggs)))
(cond (list-versions-only (list-egg-versions eggs))
@@ -969,7 +975,7 @@ usage: chicken-install [OPTION | EXTENSION[:VERSION]] ...
-repository print path used for egg installation
-override FILENAME override versions for installed eggs with information from file
-chicken-install recognizes the http_proxy and proxy_auth environment variables, if set.
+chicken-install recognizes the SUDO, http_proxy and proxy_auth environment variables, if set.
EOF
);|
Trap