source: project/chicken/trunk/scripts/make-eggdoc.scm @ 14613

Last change on this file since 14613 was 14613, checked in by Ivan Raikov, 11 years ago

added the make-eggdoc script, a tool to create HTML files from eggdoc
documentation

File size: 1.4 KB
Line 
1;;;; make-eggdoc.scm - create HTML files for eggs that use eggdoc.
2
3(include "tools.scm")
4
5(use setup-download matchable data-structures regex)
6
7(import foreign)
8
9(define csi (foreign-value "C_CSI_PROGRAM" c-string))
10
11(define *help* #f)
12(define *docroot* ".")
13
14(define *major-version* (##sys#fudge 41))
15
16(define (d fstr . args)
17  (fprintf (current-error-port) "~?~%" fstr args))
18
19(define (usage code)
20  (print "make-eggdoc.scm [--help] [--major-version=MAJOR] [DIR]")
21  (exit code))
22
23
24(define (make-eggdoc dir)
25  (let ((title (sprintf "Eggs Unlimited (release branch ~a)" *major-version*))
26        (eggs (gather-egg-information dir)))
27
28    (for-each
29     (lambda (egg)
30       (let ((meta (cdr egg)))
31         (cond
32          ((assq 'eggdoc meta) =>
33           (lambda (edoc)
34             (let ((eggname (->string (car egg))))
35             (d "creating HTML from eggdoc file ~a" (cadr edoc))
36             (let* ((egg-dir    (locate-egg/local eggname dir))
37                    (eggref-dir (sprintf "~s/eggref/~a" *docroot* *major-version* ))
38                    (cmd        (sprintf "~a -s ~a > ~a" 
39                                         csi
40                                         (make-pathname egg-dir (->string (cadr edoc)))
41                                         (make-pathname eggref-dir eggname "html"))))
42               (d "~s" cmd)
43               (system* cmd) )))))))
44     eggs)
45
46    ))
47
48(define (main args)
49  (when *help* (usage 0))
50  (print "args = " args)
51  (match args
52    ((dir)  (make-eggdoc dir))
53    (()     (make-eggdoc "."))
54    (_ (usage 1))))
55
56(main (simple-args (command-line-arguments)))
57
Note: See TracBrowser for help on using the repository browser.