mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 17:09:03 +00:00
Merge pull request #27203 from whiteinge/sphinx-apidoc-wrapper
Add script to run sphinx-apidoc against our module directories
This commit is contained in:
commit
8b2cb330e3
80
doc/apidoc-saltmods.sh
Executable file
80
doc/apidoc-saltmods.sh
Executable file
@ -0,0 +1,80 @@
|
||||
#!/bin/sh
|
||||
|
||||
MOD_DIRS='
|
||||
auth
|
||||
beacons
|
||||
cloud
|
||||
engines
|
||||
executors
|
||||
fileserver
|
||||
modules
|
||||
netapi
|
||||
output
|
||||
pillar
|
||||
proxy
|
||||
queues
|
||||
renderers
|
||||
returners
|
||||
roster
|
||||
runners
|
||||
sdb
|
||||
serializers
|
||||
states
|
||||
tops
|
||||
wheel'
|
||||
|
||||
build_stubs() {
|
||||
[ $# -eq 0 ] && { printf 'Module names are required.' 1>&2; return 1; }
|
||||
local outdir
|
||||
|
||||
while [[ -n $1 ]]; do
|
||||
outdir="ref/${1}/all"
|
||||
|
||||
mkdir -p "$outdir"
|
||||
|
||||
sphinx-apidoc --separate -o "${outdir}" $(get_excludes "$1")
|
||||
|
||||
find "$outdir" '(' \
|
||||
-path 'ref/*/all/salt.*.*.rst' \
|
||||
-o -name 'index.rst' \
|
||||
')' -prune \
|
||||
-o -type f -print0 \
|
||||
| xargs -0 rm
|
||||
|
||||
find "$outdir" -type f -print0 \
|
||||
| xargs -0 -r -I@ -n1 sh -c \
|
||||
'sed -e "/:show-inheritance:/d" @ > "@.new" && mv -- "@.new" "@"'
|
||||
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
get_excludes() {
|
||||
# This is a tad convoluted. We need to list all top-level files and
|
||||
# directories in the main Salt dir _except_ for the main __init__.py file
|
||||
# and the the module directory for the module we're building for.
|
||||
# ...that way sphinx-apidoc will exclude them from the build. (o_O)
|
||||
|
||||
exclude="${1:?Dirname to exclude is required.}"
|
||||
|
||||
find ../ \
|
||||
'(' \
|
||||
-path '*/.git' \
|
||||
-o -path '../[!s]*/*' \
|
||||
-o -path '../salt/__init__.py' \
|
||||
-o -path '../*/*/*' \
|
||||
')' -prune \
|
||||
-o '(' \
|
||||
-type d \
|
||||
-o -path '../*.py' \
|
||||
-o -path '../salt/*.py' \
|
||||
')' -print \
|
||||
| sed -e '/^\.\.\/salt$/d' \
|
||||
| sed -e '/^\.\.\/salt\/'"$exclude"'$/d'
|
||||
}
|
||||
|
||||
main() {
|
||||
build_stubs $(printf '%s\n' "$MOD_DIRS")
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in New Issue
Block a user