mirror of
https://git.meli.delivery/meli/meli
synced 2024-11-17 03:26:20 +00:00
57 lines
1.2 KiB
Bash
57 lines
1.2 KiB
Bash
|
#!/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}"
|