You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
#!/bin/sh
|
|
#
|
|
|
|
if git rev-parse --verify HEAD >/dev/null 2>&1
|
|
then
|
|
against=HEAD
|
|
else
|
|
# Initial commit: diff against an empty tree object
|
|
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
|
|
fi
|
|
|
|
# disallow ALOGW and ALOGE
|
|
if git diff --cached | grep "^\(+\| +\)" | grep -w 'ALOG[WE]\(_IF\)\?' > /dev/null; then
|
|
cat <<\EOF
|
|
ERROR: Attempt to add ALOGW or ALOGE. These should be used only if something
|
|
is truly catastrophic to the running application. Use ALOGI for
|
|
important errors, ALOGD for mundane errors, and ALOGV for unimportant
|
|
logs (don't use ALOGV for errors so they can be debugged).
|
|
|
|
If you are confident that the following uses are justified, commit this change with
|
|
|
|
git commit --no-verify
|
|
|
|
EOF
|
|
git diff --cached --diff-filter AM --color -G 'ALOG[WE](_IF)?' -- | awk '
|
|
BEGIN { found=0 }
|
|
/^\033\[[0-9]+m(@@|\+\+\+|\-\-\-)/ {
|
|
if (found) { print substr(chunk, 2); found=0; chunk="" }
|
|
if (match($1, "[-+]")) { print }
|
|
else { chunk="\n" $0 }
|
|
next
|
|
}
|
|
/^\033\[[0-9]+m ?\+/ {
|
|
if (match($0, "\\<(ALOG[WE](_IF)?)\\>")) {
|
|
found=1;
|
|
chunk=chunk "\n" gensub("\\<(ALOG[WE](_IF)?)\\>", "\033[7m\\1\033[27m", "g")
|
|
} else {
|
|
chunk=chunk "\n" $0
|
|
}
|
|
next
|
|
}
|
|
{
|
|
chunk=chunk "\n" $0
|
|
}
|
|
END { if (found) { print substr(chunk, 2) } }
|
|
'
|
|
exit 1
|
|
fi
|
|
|
|
# If there are whitespace errors, print the offending file names and fail.
|
|
exec git diff-index --check --cached $against --
|