summaryrefslogtreecommitdiff
path: root/sphinx/make_mode.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2018-07-29 21:40:48 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2018-07-29 21:40:48 +0900
commitb0c3a8fc8e00b31899eca0859b63e1e38f76d58e (patch)
tree31f73e8a3a2bf65f2869e90e819e11f998f9585f /sphinx/make_mode.py
parent004b68f281dbad6e7598c8c2f56945bb3bc07107 (diff)
downloadsphinx-git-b0c3a8fc8e00b31899eca0859b63e1e38f76d58e.tar.gz
Move sphinx.make_mode to under sphinx.cmd
Diffstat (limited to 'sphinx/make_mode.py')
-rw-r--r--sphinx/make_mode.py165
1 files changed, 0 insertions, 165 deletions
diff --git a/sphinx/make_mode.py b/sphinx/make_mode.py
deleted file mode 100644
index ae19e93ee..000000000
--- a/sphinx/make_mode.py
+++ /dev/null
@@ -1,165 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- sphinx.make_mode
- ~~~~~~~~~~~~~~~~
-
- sphinx-build -M command-line handling.
-
- This replaces the old, platform-dependent and once-generated content
- of Makefile / make.bat.
-
- This is in its own module so that importing it is fast. It should not
- import the main Sphinx modules (like sphinx.applications, sphinx.builders).
-
- :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
- :license: BSD, see LICENSE for details.
-"""
-from __future__ import print_function
-
-import os
-import subprocess
-import sys
-from os import path
-
-import sphinx
-from sphinx.cmd.build import build_main
-from sphinx.util.console import color_terminal, nocolor, bold, blue # type: ignore
-from sphinx.util.osutil import cd, rmtree
-
-if False:
- # For type annotation
- from typing import List # NOQA
-
-
-BUILDERS = [
- ("", "html", "to make standalone HTML files"),
- ("", "dirhtml", "to make HTML files named index.html in directories"),
- ("", "singlehtml", "to make a single large HTML file"),
- ("", "pickle", "to make pickle files"),
- ("", "json", "to make JSON files"),
- ("", "htmlhelp", "to make HTML files and an HTML help project"),
- ("", "qthelp", "to make HTML files and a qthelp project"),
- ("", "devhelp", "to make HTML files and a Devhelp project"),
- ("", "epub", "to make an epub"),
- ("", "latex", "to make LaTeX files, you can set PAPER=a4 or PAPER=letter"),
- ("posix", "latexpdf", "to make LaTeX and PDF files (default pdflatex)"),
- ("posix", "latexpdfja", "to make LaTeX files and run them through platex/dvipdfmx"),
- ("", "text", "to make text files"),
- ("", "man", "to make manual pages"),
- ("", "texinfo", "to make Texinfo files"),
- ("posix", "info", "to make Texinfo files and run them through makeinfo"),
- ("", "gettext", "to make PO message catalogs"),
- ("", "changes", "to make an overview of all changed/added/deprecated items"),
- ("", "xml", "to make Docutils-native XML files"),
- ("", "pseudoxml", "to make pseudoxml-XML files for display purposes"),
- ("", "linkcheck", "to check all external links for integrity"),
- ("", "doctest", "to run all doctests embedded in the documentation "
- "(if enabled)"),
- ("", "coverage", "to run coverage check of the documentation (if enabled)"),
-]
-
-
-class Make(object):
-
- def __init__(self, srcdir, builddir, opts):
- # type: (unicode, unicode, List[unicode]) -> None
- self.srcdir = srcdir
- self.builddir = builddir
- self.opts = opts
- self.makecmd = os.environ.get('MAKE', 'make') # refer $MAKE to determine make command
-
- def builddir_join(self, *comps):
- # type: (unicode) -> unicode
- return path.join(self.builddir, *comps)
-
- def build_clean(self):
- # type: () -> int
- if not path.exists(self.builddir):
- return 0
- elif not path.isdir(self.builddir):
- print("Error: %r is not a directory!" % self.builddir)
- return 1
- print("Removing everything under %r..." % self.builddir)
- for item in os.listdir(self.builddir):
- rmtree(self.builddir_join(item))
- return 0
-
- def build_help(self):
- # type: () -> None
- if not color_terminal():
- nocolor()
-
- print(bold("Sphinx v%s" % sphinx.__display_version__))
- print("Please use `make %s' where %s is one of" % ((blue('target'),) * 2)) # type: ignore # NOQA
- for osname, bname, description in BUILDERS:
- if not osname or os.name == osname:
- print(' %s %s' % (blue(bname.ljust(10)), description))
-
- def build_latexpdf(self):
- # type: () -> int
- if self.run_generic_build('latex') > 0:
- return 1
- try:
- with cd(self.builddir_join('latex')):
- return subprocess.call([self.makecmd, 'all-pdf'])
- except OSError:
- print('Error: Failed to run: %s' % self.makecmd)
- return 1
-
- def build_latexpdfja(self):
- # type: () -> int
- if self.run_generic_build('latex') > 0:
- return 1
- try:
- with cd(self.builddir_join('latex')):
- return subprocess.call([self.makecmd, 'all-pdf-ja'])
- except OSError:
- print('Error: Failed to run: %s' % self.makecmd)
- return 1
-
- def build_info(self):
- # type: () -> int
- if self.run_generic_build('texinfo') > 0:
- return 1
- try:
- with cd(self.builddir_join('texinfo')):
- return subprocess.call([self.makecmd, 'info'])
- except OSError:
- print('Error: Failed to run: %s' % self.makecmd)
- return 1
-
- def build_gettext(self):
- # type: () -> int
- dtdir = self.builddir_join('gettext', '.doctrees')
- if self.run_generic_build('gettext', doctreedir=dtdir) > 0:
- return 1
- return 0
-
- def run_generic_build(self, builder, doctreedir=None):
- # type: (unicode, unicode) -> int
- # compatibility with old Makefile
- papersize = os.getenv('PAPER', '')
- opts = self.opts
- if papersize in ('a4', 'letter'):
- opts.extend(['-D', 'latex_elements.papersize=' + papersize])
- if doctreedir is None:
- doctreedir = self.builddir_join('doctrees')
-
- args = ['-b', builder,
- '-d', doctreedir,
- self.srcdir,
- self.builddir_join(builder)]
- return build_main(args + opts)
-
-
-def run_make_mode(args):
- # type: (List[unicode]) -> int
- if len(args) < 3:
- print('Error: at least 3 arguments (builder, source '
- 'dir, build dir) are required.', file=sys.stderr)
- return 1
- make = Make(args[1], args[2], args[3:])
- run_method = 'build_' + args[0]
- if hasattr(make, run_method):
- return getattr(make, run_method)()
- return make.run_generic_build(args[0])