From 192ebaad900762d5b276e8c792ff742691b6a101 Mon Sep 17 00:00:00 2001 From: Jan Frenzel <jan.frenzel@tu-dresden.de> Date: Thu, 25 Nov 2021 16:07:32 +0100 Subject: [PATCH] Added check for multiple includes in check-no-floating.sh. --- .../util/check-no-floating.sh | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/doc.zih.tu-dresden.de/util/check-no-floating.sh b/doc.zih.tu-dresden.de/util/check-no-floating.sh index 6f94039f3..af09c72ec 100755 --- a/doc.zih.tu-dresden.de/util/check-no-floating.sh +++ b/doc.zih.tu-dresden.de/util/check-no-floating.sh @@ -4,30 +4,44 @@ if [ ${#} -ne 1 ]; then echo "Usage: ${0} <path>" fi -DOCUMENT_ROOT=${1} +export DOCUMENT_ROOT=${1} +export maxDepth=4 +export expectedFooter="$DOCUMENT_ROOT/docs/legal_notice.md $DOCUMENT_ROOT/docs/accessibility.md $DOCUMENT_ROOT/docs/data_protection_declaration.md" check_md() { - awk -F'/' '{print $0,NF,$NF}' <<< "${1}" | while IFS=' ' read string depth md; do - #echo "string=${string} depth=${depth} md=${md}" + awk -F'/' '{print $0,NF}' <<< "${1}" | while IFS=' ' read string depth; do + #echo "string=${string} depth=${depth}" # max depth check - if [ "${depth}" -gt "5" ]; then - echo "max depth (4) exceeded for ${string}" - exit -1 + if [ "${depth}" -gt $maxDepth ]; then + echo "max depth ($maxDepth) exceeded for ${string}" fi + md=${string#${DOCUMENT_ROOT}/docs/} + # md included in nav - if ! sed -n '/nav:/,/^$/p' ${2}/mkdocs.yml | grep --quiet ${md}; then - echo "${md} is not included in nav" - exit -1 + numberOfReferences=`sed -n '/nav:/,/^$/p' ${DOCUMENT_ROOT}/mkdocs.yml | grep -c ${md}` + if [ $numberOfReferences -eq 0 ]; then + # fallback: md included in footer + if [[ "${expectedFooter}" =~ ${string} ]]; then + numberOfReferencesInFooter=`sed -n '/footer:/,/^$/p' ${DOCUMENT_ROOT}/mkdocs.yml | grep -c /${md%.md}` + if [ $numberOfReferencesInFooter -eq 0 ]; then + echo "${md} is not included in footer" + elif [ $numberOfReferencesInFooter -ne 1 ]; then + echo "${md} is included $numberOfReferencesInFooter times in footer" + fi + else + echo "${md} is not included in nav" + fi + elif [ $numberOfReferences -ne 1 ]; then + echo "${md} is included $numberOfReferences times in nav" fi done } export -f check_md -#find ${DOCUMENT_ROOT}/docs -name "*.md" -exec bash -c 'check_md "${0#${1}}" "${1}"' {} ${DOCUMENT_ROOT} \; -MSG=$(find ${DOCUMENT_ROOT}/docs -name "*.md" -exec bash -c 'check_md "${0#${1}}" "${1}"' {} ${DOCUMENT_ROOT} \;) +MSG=$(find ${DOCUMENT_ROOT}/docs -name "*.md" -exec bash -c 'check_md "${0}"' {} \;) if [ ! -z "${MSG}" ]; then echo "${MSG}" exit -1 -- GitLab