mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-13 03:46:34 +00:00
d72d79d85a
This was working around bugs in various shells, but this problem has been fixed for a decade now. https://www.shellcheck.net/wiki/SC2268 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6652>
117 lines
4.5 KiB
Bash
Executable file
117 lines
4.5 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Check that the code follows a consistant code style
|
|
#
|
|
|
|
# Check for existence of indent, and error out if not present.
|
|
# On some *bsd systems the binary seems to be called gnunindent,
|
|
# so check for that first.
|
|
|
|
version=$(gnuindent --version 2>/dev/null)
|
|
if test -z "$version"; then
|
|
version=$(gindent --version 2>/dev/null)
|
|
if test -z "$version"; then
|
|
version=$(indent --version 2>/dev/null)
|
|
if test -z "$version"; then
|
|
echo "GStreamer git pre-commit hook:"
|
|
echo "Did not find GNU indent, please install it before continuing."
|
|
exit 1
|
|
else
|
|
INDENT=indent
|
|
fi
|
|
else
|
|
INDENT=gindent
|
|
fi
|
|
else
|
|
INDENT=gnuindent
|
|
fi
|
|
|
|
case $($INDENT --version) in
|
|
GNU*)
|
|
;;
|
|
default)
|
|
echo "GStreamer git pre-commit hook:"
|
|
echo "Did not find GNU indent, please install it before continuing."
|
|
echo "(Found $INDENT, but it doesn't seem to be GNU indent)"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
INDENT_PARAMETERS="--braces-on-if-line \
|
|
--case-brace-indentation0 \
|
|
--case-indentation2 \
|
|
--braces-after-struct-decl-line \
|
|
--line-length80 \
|
|
--no-tabs \
|
|
--cuddle-else \
|
|
--dont-line-up-parentheses \
|
|
--continuation-indentation4 \
|
|
--honour-newlines \
|
|
--tab-size8 \
|
|
--indent-level2 \
|
|
--leave-preprocessor-space"
|
|
|
|
echo "--Checking style--"
|
|
for file in $(git diff-index --cached --name-only HEAD --diff-filter=ACMR| grep "\.c$") ; do
|
|
# nf is the temporary checkout. This makes sure we check against the
|
|
# revision in the index (and not the checked out version).
|
|
nf=$(git checkout-index --temp ${file} | cut -f 1)
|
|
newfile=$(mktemp /tmp/${nf}.XXXXXX) || exit 1
|
|
$INDENT ${INDENT_PARAMETERS} \
|
|
$nf -o $newfile 2>> /dev/null
|
|
# FIXME: Call indent twice as it tends to do line-breaks
|
|
# different for every second call.
|
|
$INDENT ${INDENT_PARAMETERS} \
|
|
$newfile 2>> /dev/null
|
|
diff -u -p "${nf}" "${newfile}"
|
|
r=$?
|
|
rm "${newfile}"
|
|
rm "${nf}"
|
|
if [ $r != 0 ] ; then
|
|
ERROR_FILES="$ERROR_FILES $file"
|
|
echo "================================================================================================="
|
|
echo " Code style error in: $file "
|
|
echo "================================================================================================="
|
|
echo ""
|
|
fi
|
|
done
|
|
|
|
if [ -n "$ERROR_FILES" ];then
|
|
echo "================================================================================================="
|
|
echo " Code style error in: "
|
|
for file in $ERROR_FILES ; do
|
|
echo " $file"
|
|
done
|
|
echo " "
|
|
echo " Please fix before committing. Don't forget to run git add before trying to commit again. "
|
|
echo " If the whole file is to be committed, this should work (run from the top-level directory): "
|
|
echo " scripts/gst-indent$ERROR_FILES ; git add$ERROR_FILES ; git commit"
|
|
echo " "
|
|
echo "================================================================================================="
|
|
exit 1
|
|
fi
|
|
|
|
csharp_files=$( git diff-index --cached --name-only HEAD --diff-filter=ACMR| grep "^subprojects/gstreamer-sharp/.*cs$" )
|
|
if test -n "$csharp_files"; then
|
|
version=$(dotnet-format --version 2>/dev/null)
|
|
if test -z "$version"; then
|
|
echo "GStreamer git pre-commit hook:"
|
|
echo "Did not find dotnet-format required to format C# files, please install it before continuing."
|
|
exit 1
|
|
fi
|
|
scripts/format-csharp --check
|
|
r=$?
|
|
if [ $r != 0 ] ; then
|
|
echo "================================================================================================="
|
|
echo " Code style error: "
|
|
echo " "
|
|
echo " Please fix before committing, running from the top-level directory: "
|
|
echo " scripts/format-chsarp "
|
|
echo " "
|
|
echo " Don't forget to run git add before trying to commit again. "
|
|
echo "================================================================================================="
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo "--Checking style pass--"
|