blob: e82b741a9d66ac6731dff862479cf0b3cf3f044c [file] [log] [blame]
# Makefile for building CORD docs site, guide.opencord.org
# Building docs requires the following tools:
# - Gitbook toolchain: https://toolchain.gitbook.com/setup.html
# - NPM (for Gitbook and Swagger)
# - Python (for build glossary script)
# - linkchecker (for test target) http://wummel.github.io/linkchecker/
default: serve
# use bash for pushd/popd, and to fail if commands within a pipe fail
SHELL = bash -o pipefail
GENERATED_DOCS =
LINT_STYLE ?= mdl_relaxed.rb
serve: setup
gitbook serve
build: setup
gitbook build
setup: xos-gui xos-tosca kubernetes openstack onos simpleexampleservice exampleservice
gitbook init
gitbook install
test: linkcheck lint
linkcheck: build
linkchecker -a _book/
lint:
@echo "markdownlint(mdl) version: `mdl --version`"
@echo "style config:"
@echo "---"
@cat $(LINT_STYLE)
@echo "---"
mdl -s $(LINT_STYLE) `find -L . ! -path "./_book/*" ! -path "./node_modules/*" -name "*.md"`
# link directories that contain other documentation
xos-gui:
ln -s ../../xos-gui/docs xos-gui
xos-tosca:
ln -s ../../xos-tosca/docs xos-tosca
kubernetes:
ln -s ../../services/kubernetes-service/docs kubernetes
openstack:
ln -s ../../services/openstack/docs openstack
onos:
ln -s ../../services/onos-service/docs onos
exampleservice:
ln -s ../../services/exampleservice/docs exampleservice
simpleexampleservice:
ln -s ../../services/simpleexampleservice/docs simpleexampleservice
# HOW TO
# - load the virtual env (https://guide.opencord.org/xos/dev/local_env.html)
# - run `make`
# - open the browser at `http://127.0.0.1:8080/ui`
# - you'll see the 'core' apis
# - you can see a list of available apis at `http://127.0.0.1:8080/specs/`
# - just replace the swagger file (top bar) with another one to see different APIs (to be improved)
DOCSDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
swagger: swagger_clean swagger_docs swagger_serve_spec
venv-xosdocs:
./venv-xosdocs.sh
swagger_docs: venv-xosdocs
bash -c 'source $(DOCSDIR)venv-xosdocs/bin/activate && python $(DOCSDIR)scripts/swagger_docs.py'
swagger_clean:
rm -rf swagger/specs/*
venv_clean:
rm -rf $(DOCSDIR)venv-xosdocs
swagger_serve_spec:
http-server --cors ./swagger
clean: swagger_clean venv_clean
rm -rf $(GENERATED_DOCS)
rm -rf _book
rm -rf node_modules
rm -rf xos xos-gui xos-tosca kubernetes openstack onos simpleexampleservice exampleservice