#!/bin/bash
set -e

cd $(dirname $0)/..

echo Running validation

PACKAGES=". $(find -name '*.go' | xargs -I{} dirname {} |  cut -f2 -d/ | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin)' | sed -e 's!^!./!' -e 's!$!/...!')"

echo Running: go vet
go vet ${PACKAGES}
echo Running: golint
for i in ${PACKAGES}; do
    if [ -n "$(golint $i | grep -v zz_generated | \
        grep -v 'should have comment.*or be unexported' | \
        grep -v 'type GlobalDns should be GlobalDNS' | \
        tee /dev/stderr)" ]; then
        failed=true
    fi
done
test -z "$failed"
echo Running: go fmt
test -z "$(go fmt ${PACKAGES} | tee /dev/stderr)"
