Commit df7553b5 authored by Mathieu Bridon's avatar Mathieu Bridon
Browse files

doc: Build the docs without Buildstream installed

parent f918205a
Loading
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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
+5 −3
Original line number Diff line number Diff line
@@ -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) \
+19 −3
Original line number Diff line number Diff line
@@ -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()