Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4349 | Serge | 1 | #!/usr/bin/env python |
2 | # |
||
3 | # DocMaker (c) 2002, 2004, 2008 David Turner |
||
4 | # |
||
5 | # This program is a re-write of the original DocMaker took used |
||
6 | # to generate the API Reference of the FreeType font engine |
||
7 | # by converting in-source comments into structured HTML. |
||
8 | # |
||
9 | # This new version is capable of outputting XML data, as well |
||
10 | # as accepts more liberal formatting options. |
||
11 | # |
||
12 | # It also uses regular expression matching and substitution |
||
13 | # to speed things significantly. |
||
14 | # |
||
15 | |||
16 | from sources import * |
||
17 | from content import * |
||
18 | from utils import * |
||
19 | from formatter import * |
||
20 | from tohtml import * |
||
21 | |||
22 | import utils |
||
23 | |||
24 | import sys, os, time, string, glob, getopt |
||
25 | |||
26 | |||
27 | def usage(): |
||
28 | print "\nDocMaker Usage information\n" |
||
29 | print " docmaker [options] file1 [file2 ...]\n" |
||
30 | print "using the following options:\n" |
||
31 | print " -h : print this page" |
||
32 | print " -t : set project title, as in '-t \"My Project\"'" |
||
33 | print " -o : set output directory, as in '-o mydir'" |
||
34 | print " -p : set documentation prefix, as in '-p ft2'" |
||
35 | print "" |
||
36 | print " --title : same as -t, as in '--title=\"My Project\"'" |
||
37 | print " --output : same as -o, as in '--output=mydir'" |
||
38 | print " --prefix : same as -p, as in '--prefix=ft2'" |
||
39 | |||
40 | |||
41 | def main( argv ): |
||
42 | """main program loop""" |
||
43 | |||
44 | global output_dir |
||
45 | |||
46 | try: |
||
47 | opts, args = getopt.getopt( sys.argv[1:], \ |
||
48 | "ht:o:p:", \ |
||
49 | ["help", "title=", "output=", "prefix="] ) |
||
50 | except getopt.GetoptError: |
||
51 | usage() |
||
52 | sys.exit( 2 ) |
||
53 | |||
54 | if args == []: |
||
55 | usage() |
||
56 | sys.exit( 1 ) |
||
57 | |||
58 | # process options |
||
59 | # |
||
60 | project_title = "Project" |
||
61 | project_prefix = None |
||
62 | output_dir = None |
||
63 | |||
64 | for opt in opts: |
||
65 | if opt[0] in ( "-h", "--help" ): |
||
66 | usage() |
||
67 | sys.exit( 0 ) |
||
68 | |||
69 | if opt[0] in ( "-t", "--title" ): |
||
70 | project_title = opt[1] |
||
71 | |||
72 | if opt[0] in ( "-o", "--output" ): |
||
73 | utils.output_dir = opt[1] |
||
74 | |||
75 | if opt[0] in ( "-p", "--prefix" ): |
||
76 | project_prefix = opt[1] |
||
77 | |||
78 | check_output() |
||
79 | |||
80 | # create context and processor |
||
81 | source_processor = SourceProcessor() |
||
82 | content_processor = ContentProcessor() |
||
83 | |||
84 | # retrieve the list of files to process |
||
85 | file_list = make_file_list( args ) |
||
86 | for filename in file_list: |
||
87 | source_processor.parse_file( filename ) |
||
88 | content_processor.parse_sources( source_processor ) |
||
89 | |||
90 | # process sections |
||
91 | content_processor.finish() |
||
92 | |||
93 | formatter = HtmlFormatter( content_processor, project_title, project_prefix ) |
||
94 | |||
95 | formatter.toc_dump() |
||
96 | formatter.index_dump() |
||
97 | formatter.section_dump_all() |
||
98 | |||
99 | |||
100 | # if called from the command line |
||
101 | # |
||
102 | if __name__ == '__main__': |
||
103 | main( sys.argv ) |
||
104 | |||
105 | |||
106 | # eof |