mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-04 11:55:51 +00:00
85 lines
2.4 KiB
Bash
Executable File
85 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Note: This script is intended to be run from the root of the repository.
|
|
#
|
|
# Not really a hook but should be used to check the completness of documentation for added code, otherwise CI will come for you.
|
|
# It's good to have /tmp as the output so that consecutive runs are fast but no clutter in the repository.
|
|
|
|
echo "+ Checking documentation..."
|
|
|
|
ROOT=$(pwd)
|
|
DOXYGEN=$(command -v doxygen)
|
|
TMPDIR=${ROOT}/.cache/doxygen
|
|
TMPFILE=${TMPDIR}/docs.log
|
|
DOCDIR=${TMPDIR}/out
|
|
|
|
# Check doxygen is at all installed
|
|
if [ -z "$DOXYGEN" ]; then
|
|
# No hard error if doxygen is not installed yet
|
|
cat <<EOF
|
|
|
|
WARNING
|
|
-----------------------------------------------------------------------------
|
|
'doxygen' is required to check documentation.
|
|
Please install it for next time.
|
|
|
|
Your changes may fail to pass CI once pushed.
|
|
-----------------------------------------------------------------------------
|
|
|
|
EOF
|
|
exit 0
|
|
fi
|
|
|
|
# Check version of doxygen is at least 1.12
|
|
version=$($DOXYGEN --version | grep -o '[0-9\.]*')
|
|
|
|
if [[ "1.12.0" > "$version" ]]; then
|
|
# No hard error if doxygen version is not the one we want - let CI deal with it
|
|
cat <<EOF
|
|
|
|
ERROR
|
|
-----------------------------------------------------------------------------
|
|
A minimum of version 1.12 of `which doxygen` is required.
|
|
Your version is $version. Please upgrade it for next time.
|
|
|
|
Your changes may fail to pass CI once pushed.
|
|
-----------------------------------------------------------------------------
|
|
|
|
EOF
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -p ${DOCDIR} > /dev/null 2>&1
|
|
pushd ${DOCDIR} > /dev/null 2>&1
|
|
|
|
cat ${ROOT}/docs/Doxyfile | \
|
|
sed \
|
|
-e "s/\${LINT}/YES/" \
|
|
-e "s!\${SOURCE}!${ROOT}!" \
|
|
-e "s/\${USE_DOT}/NO/" \
|
|
-e "s/\${EXCLUDES}/impl/" \
|
|
| ${DOXYGEN} - 2> ${TMPFILE} 1> /dev/null
|
|
|
|
# We don't want to check for default values and typedefs as well as for member variables
|
|
OUT=$(cat ${TMPFILE} \
|
|
| grep -v "=default" \
|
|
| grep -v "\(variable\)" \
|
|
| grep -v "\(typedef\)")
|
|
|
|
rm -rf ${TMPFILE} > /dev/null 2>&1
|
|
popd > /dev/null 2>&1
|
|
|
|
if [[ ! -z "$OUT" ]]; then
|
|
cat <<EOF
|
|
|
|
ERROR
|
|
-----------------------------------------------------------------------------
|
|
Found issues with documentation:
|
|
|
|
$OUT
|
|
-----------------------------------------------------------------------------
|
|
|
|
EOF
|
|
exit 2
|
|
fi
|