#!/bin/bash die() { echo "ERROR: $*"; exit 2; } warn() { echo "WARNING: $*"; } for cmd in mkdocs pdoc3 genbadge; do command -v "$cmd" >/dev/null || warn "missing $cmd: run \`pip install $cmd\`" done PACKAGE="etrack" PACKAGESRC="src/$PACKAGE" PACKAGEROOT="$(dirname "$(realpath "$0")")" BUILDROOT="$PACKAGEROOT/site" # check for code coverage report: # need to call nosetest with --with-coverage --cover-html --cover-xml HAS_COVER=false test -d cover && HAS_COVER=true echo echo "Clean up documentation of $PACKAGE" echo rm -rf "$BUILDROOT" 2> /dev/null || true mkdir -p "$BUILDROOT" if command -v mkdocs >/dev/null; then echo echo "Building general documentation for $PACKAGE" echo cd "$PACKAGEROOT" cp .mkdocs.yml mkdocs-tmp.yml if $HAS_COVER; then echo " - Coverage: 'cover/index.html'" >> mkdocs-tmp.yml fi mkdir -p docs sed -e 's|docs/||; /\[Documentation\]/d; /\[API Reference\]/d' README.md > docs/index.md mkdocs build --config-file mkdocs.yml --site-dir "$BUILDROOT" rm mkdocs-tmp.yml docs/index.md cd - > /dev/null fi if $HAS_COVER; then echo echo "Copy code coverage report and generate badge for $PACKAGE" echo cd "$PACKAGEROOT" cp -r cover "$BUILDROOT/" genbadge coverage -i coverage.xml # https://smarie.github.io/python-genbadge/ mv coverage-badge.svg site/coverage.svg cd - > /dev/null fi if command -v pdoc3 >/dev/null; then echo echo "Building API reference docs for $PACKAGE" echo cd "$PACKAGEROOT" pdoc3 --html --config latex_math=True --config sort_identifiers=False --output-dir "$BUILDROOT/api-tmp" $PACKAGESRC mv "$BUILDROOT/api-tmp/$PACKAGE" "$BUILDROOT/api" rmdir "$BUILDROOT/api-tmp" cd - > /dev/null fi echo echo "Done. Docs in:" echo echo " file://$BUILDROOT/index.html" echo