~ chicken-core (chicken-5) 49202a5c5f71667dbdeb4c18caa2dbe618ad8149
commit 49202a5c5f71667dbdeb4c18caa2dbe618ad8149 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Thu Feb 28 14:02:12 2019 +0100 Commit: Peter Bex <peter@more-magic.net> CommitDate: Tue Mar 5 20:38:05 2019 +0100 chicken-install: exit with status 3 if no eggs are processed Suggested by megane. User abort exits with status 2. Signed-off-by: Peter Bex <peter@more-magic.net> diff --git a/chicken-install.mdoc b/chicken-install.mdoc index 2cdbac36..e6a8c773 100644 --- a/chicken-install.mdoc +++ b/chicken-install.mdoc @@ -138,7 +138,8 @@ defaults to ) .El .Sh EXIT STATUS -.Ex -std +The tool exits with status 1 on error, 2 after the user aborted an +operation or 3 if it was invoked with no explicitly given egg names and no *.egg files could be found in the current directory. .Sh EXAMPLES Install .Sq regex diff --git a/chicken-install.scm b/chicken-install.scm index 3edf293b..f35e4d28 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -773,7 +773,7 @@ (let ((r (trim (read-line)))) (cond ((string=? r "yes")) ((string=? r "no") #f) - ((string=? r "abort") (exit 1)) + ((string=? r "abort") (exit 2)) (else (loop)))))) (define (trim str) @@ -1009,22 +1009,24 @@ (purge-mode (purge-cache eggs)) (print-repository (print (install-path))) ((null? eggs) - (when cached-only - (error "`-cached' needs explicit egg list")) - (if list-versions-only - (print "no eggs specified") - (let ((files (glob "*.egg" "chicken/*.egg"))) - (set! canonical-eggs - (map (lambda (fname) - (list (pathname-file fname) (current-directory) #f)) - files)) - (set! requested-eggs (map car canonical-eggs)) - (retrieve-eggs '()) - (unless retrieve-only (install-eggs))))) + (cond (cached-only + (error "`-cached' needs explicit egg list")) + (list-versions-only + (print "no eggs specified")) + (else + (let ((files (glob "*.egg" "chicken/*.egg"))) + (when (null? files) (exit 3)) + (set! canonical-eggs + (map (lambda (fname) + (list (pathname-file fname) (current-directory) #f)) + files)) + (set! requested-eggs (map car canonical-eggs)) + (retrieve-eggs '()) + (unless retrieve-only (install-eggs)))))) (else (let ((eggs (apply-mappings eggs))) (cond (list-versions-only (list-egg-versions eggs)) - (else + (else (set! requested-eggs (map (o car canonical) eggs)) (retrieve-eggs eggs) (unless retrieve-only (install-eggs)))))))) @@ -1180,7 +1182,7 @@ EOF (irregex-match-substring m 2) eggs)) (loop (cdr args)))) - (else + (else (set! eggs (cons arg eggs)) (loop (cdr args)))))))))Trap