scripts: add mandoc_lint.sh

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
pull/342/head
Manos Pitsidianakis 4 months ago
parent cd448924ed
commit 81d1c0536b
No known key found for this signature in database
GPG Key ID: 7729C7707F7E09D0

@ -0,0 +1,56 @@
#!/bin/sh
# Copyright (c) 2024 Manos Pitsidianakis <manos@pitsidianak.is>
# Licensed under the EUPL-1.2-or-later.
#
# You may obtain a copy of the Licence at:
# https://joinup.ec.europa.eu/software/page/eupl
#
# SPDX-License-Identifier: EUPL-1.2
## shellcheck -o all -s sh -S style scripts/mandoc_lint.sh
if test "$#" -ne 1; then
printf "Usage: %s PATH_TO_MANDOC_FILE\n" "${0}"
exit 1
fi
case "${1}" in
-h)
printf "Usage: %s PATH_TO_MANDOC_FILE\n" "${0}"
exit 0
;;
--help)
printf "Usage: %s PATH_TO_MANDOC_FILE\n" "${0}"
exit 0
;;
*)
;;
esac
if ! test -f "${1}"; then
printf "Argument %s either not exists or is not a regular text file.\n" "${1}"
exit 1
fi
section=$(echo "${1}" | rev | cut -d "." -f 1)
tmpdir="$(mktemp --directory)"
git show HEAD:"${1}" > "${tmpdir}/MANDOC_IN_HEAD.${section}"
mandoc -T lint "${tmpdir}/MANDOC_IN_HEAD.${section}" 2> /dev/null | cut -d':' -f 5- > "${tmpdir}"/HEAD_LINT
mandoc -T lint "${1}" 2> /dev/null | cut -d':' -f 5- > "${tmpdir}"/CHANGED_LINT
diff -c "${tmpdir}"/HEAD_LINT "${tmpdir}"/CHANGED_LINT
status=$?
rm -rf "${tmpdir}"
if test "${status}" -ne 0; then
printf "%s introduces new lint messages. Ignore if they are a false positive.\n" "${1}"
fi
# exit "${status}"
Loading…
Cancel
Save