~ chicken-core (chicken-5) c7f73c9510fd6f0201293ec372cb22c1462e70b3
commit c7f73c9510fd6f0201293ec372cb22c1462e70b3 Author: Mario Domenech Goulart <mario@parenteses.org> AuthorDate: Sat Feb 11 15:49:42 2023 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Wed Feb 15 11:43:18 2023 +0100 chicken-install: Add -location command line option The -location (short: -l) command line option is equivalent to the `location' form in setup.defaults. The command line option takes precedence over the form in setup.defaults. Signed-off-by: felix <felix@call-with-current-continuation.org> diff --git a/NEWS b/NEWS index a314faf3..ec7b4cb5 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,9 @@ collisions with source files on case-insensitive file systems like on MacOS (#1753, reported by Kon Lovett). - chicken-install now caches eggs installed from local locations. + - chicken-install now accepts the -location command line option + (short: -l) to specify local directories where to get egg sources + from. - Compiler - When emitting types files, the output list is now sorted, to ensure diff --git a/chicken-install.scm b/chicken-install.scm index 506f9771..4a6eb9b1 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -1081,6 +1081,9 @@ usage: chicken-install [OPTION ...] [NAME[:VERSION] ...] -force don't ask, install even if versions don't match -k -keep keep temporary files -s -sudo use external command to elevate privileges for filesystem operations + -l -location DIRECTORY get egg sources from DIRECTORY. May be provided multiple times. + Locations specified on the command line have precedence over the + ones specified in setup.defaults. -r -retrieve only retrieve egg into cache directory, don't install (giving `-r' more than once implies `-recursive') -recursive if `-retrieve' is given, retrieve also dependencies @@ -1177,6 +1180,13 @@ EOF ((member arg '("-s" "-sudo")) (set! sudo-install #t) (loop (cdr args))) + ((member arg '("-l" "-location")) + (when (null? (cdr args)) + (fprintf (current-error-port) "-l|-location: missing argument.~%") + (exit 1)) + (set! default-locations + (append (list (cadr args)) default-locations)) + (loop (cddr args))) ((member arg '("-n" "-no-install")) (set! no-install #t) (loop (cdr args)))Trap