zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
docbeauty.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 #
3 # DocBeauty (c) 2003, 2004, 2008 David Turner <david@freetype.org>
4 #
5 # This program is used to beautify the documentation comments used
6 # in the FreeType 2 public headers.
7 #
8 
9 from sources import *
10 from content import *
11 from utils import *
12 
13 import utils
14 
15 import sys, os, time, string, getopt
16 
17 
18 content_processor = ContentProcessor()
19 
20 
21 def beautify_block( block ):
22  if block.content:
23  content_processor.reset()
24 
25  markups = content_processor.process_content( block.content )
26  text = []
27  first = 1
28 
29  for markup in markups:
30  text.extend( markup.beautify( first ) )
31  first = 0
32 
33  # now beautify the documentation "borders" themselves
34  lines = [" /*************************************************************************"]
35  for l in text:
36  lines.append( " *" + l )
37  lines.append( " */" )
38 
39  block.lines = lines
40 
41 
42 def usage():
43  print "\nDocBeauty 0.1 Usage information\n"
44  print " docbeauty [options] file1 [file2 ...]\n"
45  print "using the following options:\n"
46  print " -h : print this page"
47  print " -b : backup original files with the 'orig' extension"
48  print ""
49  print " --backup : same as -b"
50 
51 
52 def main( argv ):
53  """main program loop"""
54 
55  global output_dir
56 
57  try:
58  opts, args = getopt.getopt( sys.argv[1:], \
59  "hb", \
60  ["help", "backup"] )
61  except getopt.GetoptError:
62  usage()
63  sys.exit( 2 )
64 
65  if args == []:
66  usage()
67  sys.exit( 1 )
68 
69  # process options
70  #
71  output_dir = None
72  do_backup = None
73 
74  for opt in opts:
75  if opt[0] in ( "-h", "--help" ):
76  usage()
77  sys.exit( 0 )
78 
79  if opt[0] in ( "-b", "--backup" ):
80  do_backup = 1
81 
82  # create context and processor
83  source_processor = SourceProcessor()
84 
85  # retrieve the list of files to process
86  file_list = make_file_list( args )
87  for filename in file_list:
88  source_processor.parse_file( filename )
89 
90  for block in source_processor.blocks:
91  beautify_block( block )
92 
93  new_name = filename + ".new"
94  ok = None
95 
96  try:
97  file = open( new_name, "wt" )
98  for block in source_processor.blocks:
99  for line in block.lines:
100  file.write( line )
101  file.write( "\n" )
102  file.close()
103  except:
104  ok = 0
105 
106 
107 # if called from the command line
108 #
109 if __name__ == '__main__':
110  main( sys.argv )
111 
112 
113 # eof
def beautify_block
Definition: docbeauty.py:21
SOURCE PROCESSOR CLASS.
Definition: sources.py:270
def usage
Definition: docbeauty.py:42
def main
Definition: docbeauty.py:52
def make_file_list
Definition: utils.py:106