racket/collects/planet/planet-archives.ss
2005-05-27 18:56:37 +00:00

33 lines
1.1 KiB
Scheme

(module planet-archives mzscheme
(require "private/planet-shared.ss"
"config.ss")
(provide repository-tree get-installed-planet-archives)
(define (repository-tree)
(define (id x) x)
(filter-tree-by-pattern
(directory->tree (CACHE-DIR)
(lambda (x)
(not (regexp-match #rx"/(CVS|[.]svn)$"
(path->string x))))
4)
(list id id id string->number string->number)))
;; get-installed-planet-dirs : -> listof path[absolute, dir]
;; directories of all installed planet archives
(define (get-installed-planet-archives)
(with-handlers ((exn:fail:filesystem:no-directory? (lambda (e) '())))
(tree-apply
(lambda (rep-name owner package maj min)
(let ((x (list
(build-path (CACHE-DIR) owner package (number->string maj) (number->string min))
owner
package
'()
maj
min)))
x))
(repository-tree)
3))))