| #!/bin/sh |
| # Copyright 2019-2023 The Khronos Group Inc. |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # Generate documentation for the python scripts in this repo, using pdoc3: |
| # https://pdoc3.github.io/pdoc/ |
| # |
| # Output is under $(OUTDIR)/python-docs |
| |
| set -e |
| |
| # Pipe in some paths. We will convert them to module names and document them. |
| pathsToDocs() { |
| grep -v "test_" | \ |
| grep -v "__init__.py" | \ |
| sed -e 's/[.]py//' -e 's:/:.:g' | \ |
| xargs --verbose pdoc3 --html --force --output-dir $1 |
| } |
| |
| # Main body of script |
| ( |
| cd $(dirname $0) |
| # Needed to complete the build - cannot import genRef.py without it. |
| make pyapi |
| |
| SPECDIR=$(pwd) |
| OUTDIR=$(pwd)/gen/out/python-docs |
| INDEX=$OUTDIR/index.html |
| mkdir -p $OUTDIR |
| cp scripts/__init__.py.docs scripts/__init__.py |
| export PYTHONPATH=${SPECDIR}/scripts |
| ( |
| # # scripts under specification |
| cd $SPECDIR/scripts |
| ls *.py |
| |
| # Generate the index files |
| # echo "scripts" |
| echo "scripts.spec_tools" |
| |
| ) | pathsToDocs $OUTDIR |
| |
| # Generate a simple index file, since generating one with pdoc3 chokes on the Retired directory. |
| echo "<html><body><h1>Python modules</h2><ul>" > $INDEX |
| ( |
| cd $SPECDIR/scripts |
| ls *.py |
| ) | while read -r fn; do |
| MODNAME=$(echo $fn | sed -r 's/([a-zA-Z_]+)([.]py)?/\1/') |
| if [ -f $OUTDIR/$MODNAME.html ]; then |
| # Only make non-dead links |
| echo "<li><a href=$MODNAME.html>$MODNAME</a></li>" >> $INDEX |
| fi |
| done |
| echo "<li><a href=spec_tools/index.html>spec_tools</a></li>" >> $INDEX |
| echo "</ul></body></html>" >> $INDEX |
| |
| # Move index files to a more useful place |
| rm -rf $OUTDIR/spec_tools |
| mv $OUTDIR/scripts/spec_tools $OUTDIR/spec_tools |
| # delete duplicate generated files |
| rm -rf $OUTDIR/scripts |
| |
| rm -f scripts/__init__.py |
| ) |