1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#!/usr/bin/env gosh
;; Run through all examples.
(use file.util)
(use srfi-1)
(define (get-scripts)
(sort (sys-glob "example*.scm")
(lambda (a b)
(let ((ma (#/example(\d+)-(\d+)/ a))
(mb (#/example(\d+)-(\d+)/ b)))
(or (< (x->integer (ma 1)) (x->integer (mb 1)))
(and (= (x->integer (ma 1)) (x->integer (mb 1)))
(< (x->integer (ma 2)) (x->integer (mb 2)))))))))
(define (get-script-titles scripts)
(map (lambda (f)
(cond ((#/^\;\;\s*/ (with-input-from-file f read-line))
=> (lambda (m) (m 'after)))
(else f)))
scripts))
(define (main args)
(let* ((scripts (get-scripts))
(titles (get-script-titles scripts)))
(for-each
(lambda (script title)
(print title)
(sys-system #`"gosh -I../../lib -I../../src ,script"))
scripts titles))
0)
;; Local variables:
;; mode: scheme
;; end:
|