mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
We have multiple executables in tree and, while 'sphinx-build' is arguably the most important of these, there's no reason its importance should warrant inclusion at the package level. Create a new module, 'sphinx.cmd', and move the code from 'sphinx.__init__' into a 'build' submodule within. This name might be a bit disingenuous at present, given the availability of 'make-mode' here too, but that's an artifact of the current executable design and can be cleaned up later. To avoid breaking packages that are using this feature directly, aliases for the old 'main' method are included. This is based on what Django does [1] and, like Django, will allow us to safely remove the old modules in Sphinx 2.0. [1] https://github.com/django/django/blob/1.11/django/test/runner.py#L688-L695 Signed-off-by: Stephen Finucane <stephen@that.guru>
43 lines
949 B
Python
43 lines
949 B
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
sphinx.cmd.build
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
Build documentation from a provided source.
|
|
|
|
:copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS.
|
|
:license: BSD, see LICENSE for details.
|
|
"""
|
|
|
|
import sys
|
|
|
|
if False:
|
|
# For type annotation
|
|
from typing import List # NOQA
|
|
|
|
|
|
def build_main(argv=sys.argv[1:]):
|
|
# type: (List[str]) -> int
|
|
"""Sphinx build "main" command-line entry."""
|
|
from sphinx import cmdline
|
|
return cmdline.main(argv) # type: ignore
|
|
|
|
|
|
def make_main(argv=sys.argv[1:]):
|
|
# type: (List[str]) -> int
|
|
"""Sphinx build "make mode" entry."""
|
|
from sphinx import make_mode
|
|
return make_mode.run_make_mode(argv[1:]) # type: ignore
|
|
|
|
|
|
def main(argv=sys.argv[1:]):
|
|
# type: (List[str]) -> int
|
|
if sys.argv[1:2] == ['-M']:
|
|
return make_main(argv)
|
|
else:
|
|
return build_main(argv)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main(sys.argv[1:]))
|