@@ -11,7 +11,7 @@ SOURCEDIR = .
1111BUILDDIR = _build
1212VENVDIR = $(SPHINXDIR ) /venv
1313PA11Y = $(SPHINXDIR ) /node_modules/pa11y/bin/pa11y.js --config $(SPHINXDIR ) /pa11y.json
14- VENV = $(VENVDIR ) /bin/activate
14+ VENV = $(VENVDIR ) /bin/activate
1515TARGET = *
1616ALLFILES = *.rst **/*.rst
1717METRICSDIR = $(SOURCEDIR ) /.sphinx/metrics
4545.PHONY : full-help spellcheck-install pa11y-install install run html \
4646 epub serve clean clean-doc spelling spellcheck linkcheck woke \
4747 allmetrics pa11y pdf-prep-force pdf-prep pdf vale-install vale \
48- update
48+ fetch-openapi-docs update
4949
5050full-help : $(VENVDIR )
5151 @. $(VENV ) ; $(SPHINXBUILD ) -M help " $( SOURCEDIR) " " $( BUILDDIR) " $(SPHINXOPTS ) $(O )
@@ -90,12 +90,15 @@ pa11y-install:
9090
9191install : $(VENVDIR )
9292
93- run : install
94- . $(VENV ) ; $(VENVDIR ) /bin/sphinx-autobuild -b dirhtml --host $(SPHINX_HOST ) --port $(SPHINX_PORT ) " $( SOURCEDIR) " " $( BUILDDIR) " $(SPHINXOPTS )
93+ run : install fetch-openapi-docs
94+ mkdir -p $(BUILDDIR ) /reference/api
95+ . $(VENV ) ; $(VENVDIR ) /bin/sphinx-autobuild -b dirhtml --host $(SPHINX_HOST ) --port $(SPHINX_PORT ) " $( SOURCEDIR) " " $( BUILDDIR) " $(SPHINXOPTS ) --post-build " mv $( SOURCEDIR) /reference/api/redoc-static.html $( BUILDDIR) /reference/api/redoc-static.html"
9596
9697# Doesn't depend on $(BUILDDIR) to rebuild properly at every run.
97- html : install
98+ html : install fetch-openapi-docs
9899 . $(VENV ) ; $(SPHINXBUILD ) -W --keep-going -b dirhtml " $( SOURCEDIR) " " $( BUILDDIR) " -w $(SPHINXDIR ) /warnings.txt $(SPHINXOPTS )
100+ # @mkdir -p $(BUILDDIR)/reference/api
101+ # @mv $(SOURCEDIR)/reference/api/redoc-static.html $(BUILDDIR)/reference/api/redoc-static.html
99102
100103epub : install
101104 . $(VENV ) ; $(SPHINXBUILD ) -b epub " $( SOURCEDIR) " " $( BUILDDIR) " -w $(SPHINXDIR ) /warnings.txt $(SPHINXOPTS )
@@ -109,6 +112,7 @@ clean: clean-doc
109112 rm -rf $(SPHINXDIR ) /node_modules/
110113 rm -rf $(SPHINXDIR ) /styles
111114 rm -rf $(VALE_CONFIG )
115+ rm -rf $(SOURCEDIR ) /reference/api
112116
113117clean-doc :
114118 git clean -fx " $( BUILDDIR) "
@@ -155,6 +159,15 @@ vale-spelling: vale-install
155159 @. $(VENV ) ; vale --config=" $( VALE_CONFIG) " --filter=' $(SPHINXDIR)/styles/spelling.filter' --glob=' *.{md,rst}' $(TARGET )
156160 @cat $(SPHINXDIR ) /styles/config/vocabularies/Canonical/accept_backup.txt > $(SPHINXDIR ) /styles/config/vocabularies/Canonical/accept.txt && rm $(SPHINXDIR ) /styles/config/vocabularies/Canonical/accept_backup.txt
157161
162+ fetch-openapi-docs : $(SOURCEDIR ) /reference/api/index.html
163+
164+ $(SOURCEDIR ) /reference/api/index.html :
165+ @mkdir -p $(SOURCEDIR ) /reference/api
166+ @echo " Downloading OpenAPI docs from canonical/snapd-rest-openapi..."
167+ @LATEST_RUN_ID=$$(gh run list -R canonical/snapd-rest-openapi --workflow redocly.yaml --limit 1 --json databaseId -q '.[0].databaseId' ) ; \
168+ gh run download $$ LATEST_RUN_ID -R canonical/snapd-rest-openapi -n api-docs -D $(SOURCEDIR ) /reference/api
169+ @echo " OpenAPI docs downloaded to $( SOURCEDIR) /reference/api"
170+
158171pdf-prep : install
159172 @for packageName in $(REQPDFPACKS ) ; do (dpkg-query -W -f=' $${Status}' $$ packageName 2> /dev/null | \
160173 grep -c "ok installed" >/dev/null && echo "Package $$packageName is installed") && continue || \
0 commit comments