#!/usr/bin/env bash

SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPTDIR}/.validate"

adds=$(validate_diff --numstat | awk '{ s += $1 } END { print s }')
dels=$(validate_diff --numstat | awk '{ s += $2 } END { print s }')
#notDocs="$(validate_diff --numstat | awk '$3 !~ /^docs\// { print $3 }')"

: ${adds:=0}
: ${dels:=0}

# "Username may only contain alphanumeric characters or dashes and cannot begin with a dash"
githubUsernameRegex='[a-zA-Z0-9][a-zA-Z0-9-]+'

# https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
dcoPrefix='Signed-off-by:'
dcoRegex="^(Docker-DCO-1.1-)?$dcoPrefix ([^<]+) <([^<>@]+@[^<>]+)>( \\(github: ($githubUsernameRegex)\\))?$"

check_dco() {
	grep -qE "$dcoRegex"
}

if [ ${adds} -eq 0 -a ${dels} -eq 0 ]; then
	echo '0 adds, 0 deletions; nothing to validate! :)'
else
	commits=($(validate_log --format='format:%H%n'))
	badCommits=()
	for commit in "${commits[@]}"; do
		if [ -z "$(git log -1 --format='format:' --name-status "$commit")" ]; then
			# no content (ie, Merge commit, etc)
			continue
		fi
		if ! git log -1 --format='format:%B' "$commit" | check_dco; then
			badCommits+=("$commit")
		fi
	done
	if [ ${#badCommits[@]} -eq 0 ]; then
		echo "Congratulations!  All commits are properly signed with the DCO!"
	else
		{
			echo "These commits do not have a proper '$dcoPrefix' marker:"
			for commit in "${badCommits[@]}"; do
				echo " - $commit"
			done
			echo
			echo 'Please amend each commit to include a properly formatted DCO marker.'
			echo
			echo 'Visit the following URL for information about the DCO:'
			echo ' https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work'
			echo
		} >&2
		false
	fi
fi
