#!/bin/bash
set -euo pipefail

export GO111MODULE=on

SRC=$(find . -name '*.go' -not -path "./vendor/*")

echo "checking gofmt"
res=$(gofmt -d $SRC)
echo "$res"
test -z "$res"

echo "Running tests"
go test ./... -cover

echo "Checking docs"
shopt -s nullglob
mkdir tmpdocs
trap 'rm -r tmpdocs' EXIT

for doc in docs/*md
do
	echo "Checking $doc"
	# split each doc into a bunch of tmpfiles then run ct on them
	sed -n '/^```yaml fedora-coreos-config/,/^```/ p' < ${doc} \
		| csplit - '/```yaml fedora-coreos-config/' '{*}' -z --prefix tmpdocs/tmpconfig -q

	for i in tmpdocs/*
	do
		cat "$i" | tail -n +2 | head -n -1 \
			| go run internal/main.go --strict > /dev/null \
			|| (cat -n "$i" && false)
	done
done

echo ok
