Skip to content
Snippets Groups Projects
Commit df7553b5 authored by Mathieu Bridon's avatar Mathieu Bridon
Browse files

doc: Build the docs without Buildstream installed

parent f918205a
No related branches found
No related tags found
Loading
Pipeline #27185498 passed
......@@ -143,7 +143,6 @@ docs:
- pip3 install sphinx-click
- pip3 install sphinx_rtd_theme
- cd dist && ./unpack.sh && cd buildstream
- pip3 install .
- make BST_FORCE_SESSION_REBUILD=1 -C doc
- cd ../..
- mv dist/buildstream/doc/build/html public
......
......@@ -31,6 +31,9 @@ ifneq ($(strip $(BST_FORCE_SESSION_REBUILD)),)
BST2HTMLOPTS = --force
endif
# Help Python find buildstream and its plugins
PYTHONPATH=$(CURDIR)/..:$(CURDIR)/../buildstream/plugins
.PHONY: all clean templates templates-clean sessions sessions-prep sessions-clean html devhelp
......@@ -65,7 +68,6 @@ define plugin-doc-skeleton
endef
# We set PYTHONPATH here because source/conf.py sys.modules hacks dont seem to help sphinx-build import the plugins
all: html devhelp
clean: templates-clean sessions-clean
......@@ -103,7 +105,7 @@ sessions-prep:
#
sessions: sessions-prep
for file in $(wildcard sessions/*.run); do \
$(BST2HTML) $(BST2HTMLOPTS) --description $$file; \
PYTHONPATH=$(PYTHONPATH) $(BST2HTML) $(BST2HTMLOPTS) --description $$file; \
done
sessions-clean:
......@@ -114,7 +116,7 @@ sessions-clean:
#
html devhelp: templates sessions
@echo "Building $@..."
PYTHONPATH=$(CURDIR)/../buildstream/plugins \
PYTHONPATH=$(PYTHONPATH) \
$(SPHINXBUILD) -b $@ $(ALLSPHINXOPTS) "$(BUILDDIR)/$@" \
$(wildcard source/*.rst) \
$(wildcard source/tutorial/*.rst) \
......
......@@ -37,6 +37,7 @@ import click
from buildstream import _yaml
from buildstream import utils
from buildstream._frontend import cli as bst_cli
from buildstream._exceptions import BstError
......@@ -175,6 +176,19 @@ def ansi2html(text, palette='solarized'):
return sub
@contextmanager
def capture_stdout_stderr():
from io import StringIO
oldstdout, sys.stdout = sys.stdout, StringIO()
oldstderr, sys.stderr = sys.stderr, StringIO()
yield sys.stdout, sys.stderr
sys.stdout = oldstdout
sys.stderr = oldstderr
# workdir()
#
# Sets up a new temp directory with a config file
......@@ -219,9 +233,11 @@ def workdir(source_cache=None):
def run_command(config_file, directory, command):
click.echo("Running command in directory '{}': bst {}".format(directory, command), err=True)
argv = ['bst', '--colors', '--config', config_file] + shlex.split(command)
p = subprocess.Popen(argv, cwd=directory, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, _ = p.communicate()
args = ['--colors', '--config', config_file, '--directory', directory] + shlex.split(command)
with capture_stdout_stderr() as (out, _):
bst_cli.main(args=args, prog_name=bst_cli.name)
return out.decode('utf-8').strip()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment