ea2e50b67d
cplusplus.py: unicode unhandled example dump workaround index.rst: first example checked in [SVN r34891]
68 lines
1.7 KiB
Python
68 lines
1.7 KiB
Python
try:
|
|
import locale
|
|
locale.setlocale(locale.LC_ALL, '')
|
|
except:
|
|
pass
|
|
|
|
|
|
# try to import a litre_config.py file.
|
|
try:
|
|
import litre_config as config
|
|
except:
|
|
class config: pass
|
|
|
|
import sys
|
|
try: # if the user has set up docutils_root in his config, add it to the PYTHONPATH.
|
|
sys.path += ['%s/docutils' % config.docutils_root
|
|
, '%s/docutils/extras' % config.docutils_root]
|
|
except: pass
|
|
|
|
import docutils.writers
|
|
import cplusplus
|
|
import os
|
|
|
|
from docutils.core import publish_cmdline, default_description
|
|
|
|
description = ('Literate programming from ReStructuredText '
|
|
'sources. ' + default_description)
|
|
|
|
def _pop_option(prefix):
|
|
found = None
|
|
for opt in sys.argv:
|
|
if opt.startswith(prefix):
|
|
sys.argv = [ x for x in sys.argv if x != opt ]
|
|
found = opt
|
|
if prefix.endswith('='):
|
|
found = opt[len(prefix):]
|
|
return found
|
|
|
|
|
|
dump_dir = _pop_option('--dump_dir=')
|
|
max_output_lines = _pop_option('--max_output_lines=')
|
|
|
|
if dump_dir:
|
|
|
|
cplusplus.Writer.translator = cplusplus.DumpTranslator
|
|
if _pop_option('--workaround'):
|
|
cplusplus.Writer.translator = cplusplus.WorkaroundTranslator
|
|
config.includes.insert(0, os.path.join(os.path.split(dump_dir)[0], 'patches'))
|
|
|
|
config.dump_dir = os.path.abspath(dump_dir)
|
|
if _pop_option('--cleanup_source'):
|
|
config.line_hash = None
|
|
|
|
if not os.path.exists(config.dump_dir):
|
|
os.makedirs(config.dump_dir)
|
|
|
|
if max_output_lines:
|
|
config.max_output_lines = int(max_output_lines)
|
|
|
|
config.bjam_options = _pop_option('--bjam=')
|
|
|
|
config.includes = []
|
|
|
|
publish_cmdline(
|
|
writer=cplusplus.Writer(config),
|
|
description=description
|
|
)
|