forgot to add this file

This commit is contained in:
Sam TH 2010-04-18 21:58:20 -04:00
parent 89dc7afd02
commit 5384fef66e

View File

@ -0,0 +1,39 @@
#lang scheme/base
(require setup/getinfo)
(provide all-tools)
(define (all-tools)
(let* ([dirs (find-relevant-directories '(rico))]
[tools (make-hash)])
(for ([i (in-list (map get-info/full dirs))]
[d (in-list dirs)])
(let ([entries (let ([l (i 'rico (lambda () null))])
(if (list? l)
l
(list l)))])
(for ([entry (in-list entries)])
(cond
[(and (list? entry)
(= (length entry) 4)
(string? (car entry))
(module-path? (cadr entry))
(string? (caddr entry))
(or (not (list-ref entry 3))
(real? (list-ref entry 3))))
(let ([p (hash-ref tools (car entry) #f)])
(when p
(fprintf
(current-error-port)
"warning: tool ~s registered twice: ~e and ~e"
(car entry)
(car p)
d)))
(hash-set! tools (car entry) entry)]
[else
(fprintf
(current-error-port)
"warning: ~s provided bad `rico' spec: ~e"
d
entry)]))))
tools))