#!/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 --