add various options to sphinx-quickstart.

This commit is contained in:
shirou 2014-09-27 23:24:03 +09:00
parent 7984f81a5e
commit c761740cfc

View File

@ -13,6 +13,7 @@ from __future__ import print_function
import re import re
import os import os
import sys import sys
import optparse
import time import time
from os import path from os import path
from io import open from io import open
@ -1344,16 +1345,117 @@ where "builder" is one of the supported builders, e.g. html, latex or linkcheck.
''') ''')
def usage(argv, msg=None):
if msg:
print(msg, file=sys.stderr)
print(file=sys.stderr)
USAGE = """\
Sphinx v%s
Usage: %%prog [options] folder
""" % __version__
EPILOG = """\
For more information, visit <http://sphinx-doc.org/>.
"""
class MyFormatter(optparse.IndentedHelpFormatter):
def format_usage(self, usage):
return usage
def format_help(self, formatter):
result = []
if self.description:
result.append(self.format_description(formatter))
if self.option_list:
result.append(self.format_option_help(formatter))
return "\n".join(result)
def main(argv=sys.argv): def main(argv=sys.argv):
if not color_terminal(): if not color_terminal():
nocolor() nocolor()
d = {} parser = optparse.OptionParser(USAGE, epilog=EPILOG,
if len(argv) > 3: formatter=MyFormatter())
print('Usage: sphinx-quickstart [root]') parser.add_option('--version', action='store_true', dest='version',
sys.exit(1) help='show version information and exit')
elif len(argv) == 2: parser.add_option('-q', action='store_true', dest='quiet',
d['path'] = argv[1] default=False,
help='quiet mode')
group = parser.add_option_group('Structure options')
group.add_option('--sep', action='store_true', dest='sep',
help='if specified, separate source and build dirs')
group.add_option('--dot', metavar='DOT', dest='dot',
help='replacement for dot in _templates etc.')
group = parser.add_option_group('Project basic options')
group.add_option('-p', metavar='PROJECT', dest='project',
help='project name')
group.add_option('-a', metavar='AUTHOR', dest='author',
help='author names')
group.add_option('-v', metavar='VERSION', dest='version',
help='version of project')
group.add_option('-r', metavar='RELEASE', dest='version',
help='release of project')
group.add_option('-l', metavar='LANGUAGE', dest='language',
help='document language')
group.add_option('--suffix', metavar='SUFFIX', dest='suffix',
help='source file suffix')
group.add_option('--master', metavar='MASTER', dest='master',
help='master document name')
group.add_option('--epub', action='store_true', dest='epub',
default=False,
help='use epub')
group = parser.add_option_group('Extensions')
group.add_option('--ext_autodoc', action='store_true', dest='ext_autodoc',
default=None,
help='add autodoc extention')
group.add_option('--ext_doctest', action='store_true', dest='ext_doctest',
default=False,
help='add doctest extention')
group.add_option('--ext_intersphinx', action='store_true', dest='ext_intersphinx',
default=False,
help='add intersphinx extention')
group.add_option('--ext_todo', action='store_true', dest='ext_todo',
default=False,
help='add todo extention')
group.add_option('--ext_coverage', action='store_true', dest='ext_coverage',
default=False,
help='add coverage extention')
group.add_option('--ext_pngmath', action='store_true', dest='ext_pngmath',
default=False,
help='add pngmath extention')
group.add_option('--ext_mathjax', action='store_true', dest='ext_mathjax',
default=False,
help='add mathjax extention')
group = parser.add_option_group('Makefile and Batchfile creation')
group.add_option('--makefile', action='store_true', dest='makefile',
default=False,
help='makefile')
group.add_option('--batchfile', action='store_true', dest='batchfile',
default=False,
help='create batchfile')
# parse options
try:
opts, args = parser.parse_args()
except SystemExit as err:
return err.code
if len(args) > 0:
opts.ensure_value('path', args[0])
d = vars(opts)
for k, v in d.items():
# delete None or False value
if v is None or v is False:
del d[k]
try: try:
ask_user(d) ask_user(d)
except (KeyboardInterrupt, EOFError): except (KeyboardInterrupt, EOFError):
@ -1362,6 +1464,5 @@ def main(argv=sys.argv):
return return
generate(d) generate(d)
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(main(sys.argv)) sys.exit(main(sys.argv))