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)
(let* ((part (car parts))
(rem (cdr parts)))
(map (lambda (curr)
(let ((new (string-append curr "/" part)))
(if (and (directory? curr)
Complexity is your enemy. Any fool can make something complicated.
It is hard to keep things simple. - Richard Branson.