~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tools/rst2prettyhtml.py

  • Committer: Aaron Bentley
  • Date: 2006-11-10 02:34:00 UTC
  • mto: This revision was merged to the branch mainline in revision 2127.
  • Revision ID: aaron.bentley@utoronto.ca-20061110023400-ee2ce6e893707008
More updates from review comments

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/usr/bin/env python2.4
 
2
 
2
3
import errno
3
4
import os
4
5
from StringIO import StringIO
5
6
import sys
6
7
 
7
 
from docutils.core import publish_file
8
 
from docutils.parsers import rst
9
 
from elementtree.ElementTree import XML
10
 
from elementtree import HTMLTreeBuilder
11
 
import kid
 
8
try:
 
9
    from docutils.core import publish_file
 
10
    from docutils.parsers import rst
 
11
except ImportError:
 
12
    print "Missing dependency.  Please install docutils."
 
13
    sys.exit(1)
 
14
try:
 
15
    from elementtree.ElementTree import XML
 
16
    from elementtree import HTMLTreeBuilder
 
17
except ImportError:
 
18
    print "Missing dependency.  Please install ElementTree."
 
19
    sys.exit(1)
 
20
try:
 
21
    import kid
 
22
except ImportError:
 
23
    print "Missing dependency.  Please install Kid."
 
24
    sys.exit(1)
 
25
 
12
26
 
13
27
def kidified_rest(rest_file, template_name):
14
28
    xhtml_file = StringIO()
28
42
                          head=head, body=body)
29
43
    return (template.serialize(output="html"))
30
44
 
 
45
 
31
46
def safe_open(filename, mode):
32
47
    try:
33
48
        return open(filename, mode + 'b')
36
51
            raise
37
52
        sys.stderr.write('file not found: %s\n' % sys.argv[2])
38
53
        sys.exit(3)
39
 
args = sys.argv[1:]
40
 
 
41
 
assert len(args) > 0
42
 
 
43
 
if len(args) > 1:
44
 
    rest_file = safe_open(args[1], 'r')
45
 
else:
46
 
    rest_file = sys.stdin
47
 
 
48
 
if len(args) > 2:
49
 
    out_file = safe_open(args[2], 'w')
50
 
else:
51
 
    out_file = sys.stdout
52
 
 
53
 
out_file.write(kidified_rest(rest_file, args[0]))
 
54
 
 
55
 
 
56
def main(template, source=None, target=None):
 
57
    if source is not None:
 
58
        rest_file = safe_open(source, 'r')
 
59
    else:
 
60
        rest_file = sys.stdin
 
61
    if target is not None:
 
62
        out_file = safe_open(target, 'w')
 
63
    else:
 
64
        out_file = sys.stdout
 
65
    out_file.write(kidified_rest(rest_file, template))
 
66
 
 
67
assert len(sys.argv) > 1
 
68
 
 
69
main(*sys.argv[1:])
 
70