diff --git a/info.rkt b/info.rkt index e974324..cf94eeb 100644 --- a/info.rkt +++ b/info.rkt @@ -2,3 +2,6 @@ (define name "better-test") (define build-deps '("rackunit-lib")) (define deps '("base" "errortrace-lib")) + +(define raco-commands + '(("better-test" (submod better-test/raco main) "a better testing library" 100))) diff --git a/raco.rkt b/raco.rkt new file mode 100644 index 0000000..8aa9166 --- /dev/null +++ b/raco.rkt @@ -0,0 +1,28 @@ +#lang racket +(require raco/command-name "main.rkt") + +(module+ main + (define files + (expand-directories + (command-line + #:program (short-program+command-name) + #:args files files))) + (apply test-files! files)) + +;; TODO allow for arbitrary extensions +(define extensions '(#rx".rkt$" #rx".ss$")) +(define (expand-directories files) + (flatten + (for/list ([f files]) + (if (not (directory-exists? f)) + f + (expand-directory f))))) + +(define (expand-directory d) + (for/list ([p (directory-list d)]) + (cond [(directory-exists? p) + (parameterize ([current-directory (build-path (current-directory) p)]) + (expand-directory "."))] + [(ormap (lambda (r) (regexp-match r (path->string p))) extensions) + (path->string (build-path (current-directory) p))] + [else (displayln " is bad file") null])))