Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 1 | # Makefile for building CORD docs site, guide.opencord.org |
| 2 | # Building docs requires the following tools: |
| 3 | # - Gitbook toolchain: https://toolchain.gitbook.com/setup.html |
| 4 | # - NPM (for Gitbook and Swagger) |
| 5 | # - Python (for build glossary script) |
| 6 | # - linkchecker (for test target) http://wummel.github.io/linkchecker/ |
Zack Williams | da8a5d8 | 2017-09-08 12:45:14 -0700 | [diff] [blame] | 7 | |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 8 | default: serve |
Matteo Scandolo | 431781c | 2017-09-06 15:33:07 -0700 | [diff] [blame] | 9 | |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 10 | # use bash for pushd/popd, and to fail if commands within a pipe fail |
| 11 | SHELL = bash -o pipefail |
Zack Williams | da8a5d8 | 2017-09-08 12:45:14 -0700 | [diff] [blame] | 12 | |
Zack Williams | a34afb5 | 2019-03-13 08:12:30 -0700 | [diff] [blame] | 13 | GENERATED_DOCS = |
Matteo Scandolo | 431781c | 2017-09-06 15:33:07 -0700 | [diff] [blame] | 14 | |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 15 | LINT_STYLE ?= mdl_relaxed.rb |
Zack Williams | 6c78f91 | 2018-06-21 10:56:24 -0700 | [diff] [blame] | 16 | |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 17 | serve: setup |
Matteo Scandolo | 8419c08 | 2019-03-11 13:54:44 -0700 | [diff] [blame] | 18 | gitbook serve --log=debug --debug |
Matteo Scandolo | 431781c | 2017-09-06 15:33:07 -0700 | [diff] [blame] | 19 | |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 20 | build: setup |
| 21 | gitbook build |
Zack Williams | da8a5d8 | 2017-09-08 12:45:14 -0700 | [diff] [blame] | 22 | |
Matteo Scandolo | 8419c08 | 2019-03-11 13:54:44 -0700 | [diff] [blame] | 23 | setup: |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 24 | gitbook init |
| 25 | gitbook install |
Matteo Scandolo | 431781c | 2017-09-06 15:33:07 -0700 | [diff] [blame] | 26 | |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 27 | test: linkcheck lint |
| 28 | |
| 29 | linkcheck: build |
| 30 | linkchecker -a _book/ |
| 31 | |
| 32 | lint: |
| 33 | @echo "markdownlint(mdl) version: `mdl --version`" |
| 34 | @echo "style config:" |
| 35 | @echo "---" |
| 36 | @cat $(LINT_STYLE) |
| 37 | @echo "---" |
| 38 | mdl -s $(LINT_STYLE) `find -L . ! -path "./_book/*" ! -path "./node_modules/*" -name "*.md"` |
| 39 | |
Larry Peterson | b658e8b | 2018-06-29 09:21:16 -0700 | [diff] [blame] | 40 | # HOW TO |
| 41 | # - load the virtual env (https://guide.opencord.org/xos/dev/local_env.html) |
| 42 | # - run `make` |
| 43 | # - open the browser at `http://127.0.0.1:8080/ui` |
| 44 | # - you'll see the 'core' apis |
| 45 | # - you can see a list of available apis at `http://127.0.0.1:8080/specs/` |
| 46 | # - just replace the swagger file (top bar) with another one to see different APIs (to be improved) |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 47 | |
Larry Peterson | b658e8b | 2018-06-29 09:21:16 -0700 | [diff] [blame] | 48 | DOCSDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) |
| 49 | |
| 50 | swagger: swagger_clean swagger_docs swagger_serve_spec |
| 51 | |
| 52 | venv-xosdocs: |
| 53 | ./venv-xosdocs.sh |
| 54 | |
| 55 | swagger_docs: venv-xosdocs |
| 56 | bash -c 'source $(DOCSDIR)venv-xosdocs/bin/activate && python $(DOCSDIR)scripts/swagger_docs.py' |
| 57 | |
| 58 | swagger_clean: |
| 59 | rm -rf swagger/specs/* |
| 60 | |
| 61 | venv_clean: |
| 62 | rm -rf $(DOCSDIR)venv-xosdocs |
| 63 | |
| 64 | swagger_serve_spec: |
| 65 | http-server --cors ./swagger |
| 66 | |
| 67 | clean: swagger_clean venv_clean |
Larry Peterson | 8014352 | 2018-06-28 10:43:40 -0700 | [diff] [blame] | 68 | rm -rf $(GENERATED_DOCS) |
| 69 | rm -rf _book |
| 70 | rm -rf node_modules |