#!/bin/bash

# Check that test files don't contain focussed test cases.
errored=false
for f in $(git diff --diff-filter=d --cached --name-only); do
	if [[ $f != *_test.go ]]; then continue; fi
	output=$(git show :"$f" | grep -n -e "FIt(" -e "FContext(" -e "FDescribe(")
	if [ $? -eq 0 ]; then
		echo "$f contains a focussed test:"
		echo "$output"
		echo ""
		errored=true
	fi
done

pushd ./integrationtests/gomodvendor > /dev/null
go mod tidy
if [[ -n $(git diff --diff-filter=d --name-only -- "go.mod" "go.sum") ]]; then
  echo "go.mod / go.sum in integrationtests/gomodvendor not tidied"
  errored=true
fi
popd > /dev/null

# Check that all Go files are properly gofumpt-ed.
output=$(gofumpt -d $(git diff --diff-filter=d --cached --name-only -- '*.go'))
if [ -n "$output" ]; then
	echo "Found files that are not properly gofumpt-ed."
	echo "$output"
	errored=true
fi

if [ "$errored" = true ]; then
	exit 1
fi
