summaryrefslogtreecommitdiff
path: root/asciidoc/a2x.py
diff options
context:
space:
mode:
Diffstat (limited to 'asciidoc/a2x.py')
-rw-r--r--asciidoc/a2x.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/asciidoc/a2x.py b/asciidoc/a2x.py
index 2ba2df9..be70367 100644
--- a/asciidoc/a2x.py
+++ b/asciidoc/a2x.py
@@ -873,11 +873,10 @@ class A2X(AttrDict):
shell_rm(html_file)
-def cli():
- global OPTIONS
-
+def parse_args(argv):
description = '''A toolchain manager for AsciiDoc (converts Asciidoc text files to other file formats)'''
from optparse import OptionParser
+ import shlex
parser = OptionParser(usage='usage: %prog [OPTIONS] SOURCE_FILE',
version='%s %s' % (PROG,VERSION),
description=description)
@@ -976,18 +975,24 @@ def cli():
parser.add_option('-v', '--verbose',
action='count', dest='verbose', default=0,
help='increase verbosity')
- if len(sys.argv) == 1:
+ if len(argv) == 1:
parser.parse_args(['--help'])
- source_options = get_source_options(sys.argv[-1])
- argv = source_options + sys.argv[1:]
- opts, args = parser.parse_args(argv)
+ source_options = get_source_options(argv[-1])
+ new_argv = source_options + argv[1:]
+ opts, args = parser.parse_args(new_argv)
if len(args) != 1:
parser.error('incorrect number of arguments')
- opts.asciidoc_opts = [x.split(' ') for x in opts.asciidoc_opts]
+ opts.asciidoc_opts = shlex.split(' ' .join(opts.asciidoc_opts))
opts.dblatex_opts = ' '.join(opts.dblatex_opts)
opts.fop_opts = ' '.join(opts.fop_opts)
opts.xsltproc_opts = ' '.join(opts.xsltproc_opts)
opts.backend_opts = ' '.join(opts.backend_opts)
+ return (new_argv, opts, args)
+
+
+def cli():
+ global OPTIONS
+ argv, opts, args = parse_args(sys.argv)
opts = eval(str(opts)) # Convert optparse.Values to dict.
a2x = A2X(opts)
OPTIONS = a2x # verbose and dry_run used by utility functions.