zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
docmaker.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 #
3 # DocMaker (c) 2002, 2004, 2008 David Turner <david@freetype.org>
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
def usage
Definition: docmaker.py:27
def check_output
Definition: utils.py:81
SOURCE PROCESSOR CLASS.
Definition: sources.py:270
def main
Definition: docmaker.py:41
def make_file_list
Definition: utils.py:106