util/gitconfig: Support dash in pre-commit hook

On debian systems, /bin/sh is `dash` which has built-in `echo` always
interpreting escape sequences such as '\n'. The pre-commit hook uses
the built-in for piping diff to checkpatch, interpreting the diff's
escape sequences in the process and leading to false negatives
and preventing commits despite conformance.

Use `printf` instead of `echo` when handling diff content. The bug was
introduced in commit ef869305 (util/gitconfig: update pre-commit
script).

Change-Id: I37edfe7b32721cb63d99299563cb11f26082c9a9
Signed-off-by: Alex Thiessen <alex.thiessen.de+coreboot@gmail.com>
Reviewed-on: https://review.coreboot.org/23070
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Alex Thiessen 2018-01-03 08:12:39 +00:00 committed by Nico Huber
parent 6fc39d47d0
commit ceb7788c80
1 changed files with 2 additions and 2 deletions

View File

@ -2,8 +2,8 @@
%MAKE% lint-stable
PATCHDIFF=$(git diff --cached)
if echo "$PATCHDIFF" | grep -q "@@"; then
if printf "%s\n" "$PATCHDIFF" | grep -q "@@"; then
echo
echo "Running checkpatch"
echo "$PATCHDIFF" | util/lint/checkpatch.pl --no-signoff -q -
printf "%s\n" "$PATCHDIFF" | util/lint/checkpatch.pl --no-signoff -q -
fi