mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix a case where nothing is built if the environment is fresh.
This commit is contained in:
parent
696f56479c
commit
4a53c7c96f
@ -149,7 +149,7 @@ class Builder(object):
|
|||||||
|
|
||||||
def build_all(self):
|
def build_all(self):
|
||||||
"""Build all source files."""
|
"""Build all source files."""
|
||||||
self.build(None, summary='all source files')
|
self.build(None, summary='all source files', method='all')
|
||||||
|
|
||||||
def build_specific(self, filenames):
|
def build_specific(self, filenames):
|
||||||
"""Only rebuild as much as needed for changes in the source_filenames."""
|
"""Only rebuild as much as needed for changes in the source_filenames."""
|
||||||
@ -162,14 +162,17 @@ class Builder(object):
|
|||||||
filename = path.abspath(filename)[dirlen:]
|
filename = path.abspath(filename)[dirlen:]
|
||||||
if filename.endswith(suffix):
|
if filename.endswith(suffix):
|
||||||
filename = filename[:-len(suffix)]
|
filename = filename[:-len(suffix)]
|
||||||
|
filename = filename.replace(os.path.sep, SEP)
|
||||||
to_write.append(filename)
|
to_write.append(filename)
|
||||||
self.build(to_write,
|
self.build(to_write, method='specific',
|
||||||
summary='%d source files given on command line' % len(to_write))
|
summary='%d source files given on command '
|
||||||
|
'line' % len(to_write))
|
||||||
|
|
||||||
def build_update(self):
|
def build_update(self):
|
||||||
"""Only rebuild files changed or added since last build."""
|
"""Only rebuild files changed or added since last build."""
|
||||||
to_build = self.get_outdated_docs()
|
to_build = self.get_outdated_docs()
|
||||||
if not to_build:
|
if not to_build and self.env.all_docs:
|
||||||
|
# if there is nothing in all_docs, it's a fresh env
|
||||||
self.info(bold('no target files are out of date, exiting.'))
|
self.info(bold('no target files are out of date, exiting.'))
|
||||||
return
|
return
|
||||||
if isinstance(to_build, str):
|
if isinstance(to_build, str):
|
||||||
@ -180,7 +183,7 @@ class Builder(object):
|
|||||||
summary='targets for %d source files that are '
|
summary='targets for %d source files that are '
|
||||||
'out of date' % len(to_build))
|
'out of date' % len(to_build))
|
||||||
|
|
||||||
def build(self, docnames, summary=None):
|
def build(self, docnames, summary=None, method='update'):
|
||||||
if summary:
|
if summary:
|
||||||
self.info(bold('building [%s]: ' % self.name), nonl=1)
|
self.info(bold('building [%s]: ' % self.name), nonl=1)
|
||||||
self.info(summary)
|
self.info(summary)
|
||||||
@ -213,7 +216,7 @@ class Builder(object):
|
|||||||
|
|
||||||
# another indirection to support methods which don't build files
|
# another indirection to support methods which don't build files
|
||||||
# individually
|
# individually
|
||||||
self.write(docnames, updated_docnames)
|
self.write(docnames, updated_docnames, method)
|
||||||
|
|
||||||
# finish (write static files etc.)
|
# finish (write static files etc.)
|
||||||
self.info(bold('finishing... '))
|
self.info(bold('finishing... '))
|
||||||
@ -223,10 +226,13 @@ class Builder(object):
|
|||||||
else:
|
else:
|
||||||
self.info(bold('build succeeded.'))
|
self.info(bold('build succeeded.'))
|
||||||
|
|
||||||
def write(self, build_docnames, updated_docnames):
|
def write(self, build_docnames, updated_docnames, method='update'):
|
||||||
if build_docnames is None: # build_all
|
if build_docnames is None:
|
||||||
|
# build_all
|
||||||
build_docnames = self.env.all_docs
|
build_docnames = self.env.all_docs
|
||||||
docnames = set(build_docnames) | set(updated_docnames)
|
if method == 'update':
|
||||||
|
# build updated ones as well
|
||||||
|
docnames = set(build_docnames) | set(updated_docnames)
|
||||||
|
|
||||||
# add all toctree-containing files that may have changed
|
# add all toctree-containing files that may have changed
|
||||||
for docname in list(docnames):
|
for docname in list(docnames):
|
||||||
|
@ -202,7 +202,7 @@ Doctest summary
|
|||||||
|
|
||||||
sys.path[0:0] = self.config.doctest_path
|
sys.path[0:0] = self.config.doctest_path
|
||||||
|
|
||||||
def write(self, build_docnames, updated_docnames):
|
def write(self, build_docnames, updated_docnames, method='update'):
|
||||||
if build_docnames is None:
|
if build_docnames is None:
|
||||||
build_docnames = self.env.all_docs
|
build_docnames = self.env.all_docs
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user