libgd/docs/naturaldocs/run_docs.sh

87 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
set -e
usage() {
echo "Usage: run_docs.sh [--nonfatal]"
echo "Generate the manual for gd!"
if [ $# -ne 0 ] ; then
printf 'ERROR: %b\n' "$*"
exit 1
else
exit 0
fi
}
nd() {
# Figure out the name of this tool.
if command -v naturaldocs ; then
return
elif command -v NaturalDocs ; then
return
else
return 1
fi
}
cd "$(dirname "$0")"
if [ $# -eq 1 ] ; then
case $1 in
--nonfatal)
if ! nd >/dev/null ; then
echo "skipping doc generation -- please install naturaldoc!"
exit 0
fi
;;
-h|--help)
usage
;;
*)
usage "unknown option: $1"
;;
esac
elif [ $# -ne 0 ] ; then
usage "unknown options: $*"
fi
# Dump the tool version info for debugging.
echo "Found '$(nd)': $($(nd) -h | head -n1)"
# Library version number.
VERSION=$(cd ../../; config/getver.sh)
# Clear away old docs and ensure the doc dir. is present.
rm -rf html
mkdir html
# Create a lightly-processed copy of the source to use as input. This
# file skips all non-C code in src/ and removes the BGD_DECLARE()
# macro from definitions so they don't show up in the docs.
rm -rf tmp
mkdir tmp
perl nobgd.pl ../../src/ tmp/
# Add the external docs.
echo "Title: License" | cat - ../../COPYING > tmp/license.txt
sed -e "s/@VERSION@/$VERSION/g" preamble.txt > tmp/preamble.txt
# ^^^ hack to get the version number in the docs.
# Run naturaldocs to create the manual.
$(nd) --rebuild --rebuild-output --documented-only \
-i tmp/ \
-img images/ \
-o html html \
--project project/ \
-s Default libgd
# Strip whitespace.
sed -i.tmp -E \
-e 's:[[:space:]]+$::' \
-e '${/^[[:space:]]*$/d}' \
project/*.txt
rm project/*.txt.tmp
# And cleanup the temp files.
rm -rf Data tmp