From 2f5b95b3899957d61b75ce256578cb479d3704dc Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 4 Dec 2013 10:21:10 -0700 Subject: [PATCH] raco: skip problem "info.rkt" files Allows some `raco` tools to work (such as `raco pkg`) when loading information about other installed tools fails, so that problems can be more easily corrected using working tools (other than `raco setup`, which is a special case, anyway, for bootstrapping). Closes PR 14221 Merge to v6.0 (cherry picked from commit b625e62ca8d386919bfa1a009cec18bd916e24fb) --- racket/collects/raco/all-tools.rkt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/racket/collects/raco/all-tools.rkt b/racket/collects/raco/all-tools.rkt index 8b91238753..ebfc09acec 100644 --- a/racket/collects/raco/all-tools.rkt +++ b/racket/collects/raco/all-tools.rkt @@ -1,12 +1,19 @@ #lang racket/base +(require setup/getinfo + racket/list) -(require setup/getinfo) (provide all-tools) +(define (get-info/full/skip dir) + (with-handlers ([exn:fail? (lambda (exn) + (log-error (exn-message exn)) + #f)]) + (get-info/full dir))) + (define (all-tools) (let* ([dirs (find-relevant-directories '(raco-commands) 'all-available)] [tools (make-hash)]) - (for ([i (in-list (map get-info/full dirs))] + (for ([i (in-list (filter-map get-info/full/skip dirs))] [d (in-list dirs)]) (let ([entries (let ([l (if i (i 'raco-commands (lambda () null))