diff options
Diffstat (limited to 'build-root/scripts/coverity-blame.sh')
-rwxr-xr-x | build-root/scripts/coverity-blame.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/build-root/scripts/coverity-blame.sh b/build-root/scripts/coverity-blame.sh new file mode 100755 index 00000000000..8775ea48d99 --- /dev/null +++ b/build-root/scripts/coverity-blame.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# Read coverity email on stdin +# whenever we find a filename & line number reference, go git-blame it + +file= +start= +end= + +while read line; do + if echo "$line" | grep -q '^/.*: '; then + echo "$line" + file=$(echo "$line" | cut -d: -f1) + elif echo "$line" | grep -q '^[*]'; then + echo "$line" + file= + start= + end= + elif echo "$line" | grep -q '^[0-9][0-9]*'; then + num=$(echo "$line" | awk '{print $1}') + [ -z "$start" ] && start=$num + #git blame -L "$num,+1" ".$file" | cat + elif [ -z "$line" ]; then + if [ "$start" -a "$num" -a "$file" ]; then + end=$num + git blame --date=short -L "$start,$end" ".$file" | cat + start= + end= + num= + else + echo "$line" + fi + else + echo "$line" + fi +done |