Supporting glob patterns at any level would be handy. I started to implement something which I've included below but before I complete it:
1. Is there a multi-level glob implementation in some other egg? The glob that comes with posix only handles the pattern in the top level. I didn't find anything in searching the eggs. 2. Does anyone have an implementation they can share? 3. If I complete the implementation below can it be added to posix or should I create an egg? (define (multi-glob pathspec) (let* ((path-parts (string-split pathspec "/" #t))) (if (null? path-parts) '() (let loop ((parts (cdr path-parts)) (result (let ((p (car path-parts))) (if (string=? p "") '("/") (glob (car path-parts)))))) (if (null? parts) result (let* ((part (car parts)) (rem (cdr parts))) (loop rem (apply append (map (lambda (curr) (let ((new (string-append curr "/" part))) (if (and (directory? curr) (file-read-access? curr)) (glob new) '()))) result))))))))) ~ ~ -- -- Complexity is your enemy. Any fool can make something complicated. It is hard to keep things simple. - Richard Branson.