~ chicken-core (chicken-5) 999b4ee25e8d2b596fb9c119bdae3c78cd519b85
commit 999b4ee25e8d2b596fb9c119bdae3c78cd519b85
Author: Mario Domenech Goulart <mario.goulart@gmail.com>
AuthorDate: Thu Jul 19 20:40:25 2012 -0300
Commit: Peter Bex <peter.bex@xs4all.nl>
CommitDate: Fri Jul 20 21:55:44 2012 +0200
chicken-install: abort when transport and location cannot be determined
This patch fixes the number of arguments passed to the procedure given
as argument to `with-default-sources', which would raise an arity
error when transport and location could not be determined (issue found
by Peter Bex).
That procedure is now given a thunk that will properly abort
chicken-install, displaying a meaningful message.
Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
diff --git a/chicken-install.scm b/chicken-install.scm
index 26747974..b252e1db 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -339,7 +339,14 @@
(define (with-default-sources proc)
(let trying-sources ([defs (known-default-sources)])
(if (null? defs)
- (proc #f #f)
+ (proc #f #f
+ (lambda ()
+ (with-output-to-port (current-error-port)
+ (lambda ()
+ (print "Could not determine a source of extensions. "
+ "Please, specify a location and a transport for "
+ "a source.")))
+ (exit 1)))
(let* ([def (car defs)]
[locn (resolve-location
(cadr (or (assq 'location def)
Trap