74 lines
1.8 KiB
Bash
Executable File
74 lines
1.8 KiB
Bash
Executable File
#!/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 |