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