#!/usr/bin/env bash fmtcount=`git ls-files | grep '.go$' | xargs gofmt -l 2>&1 | wc -l` if [ $fmtcount -gt 0 ]; then echo "Some files aren't formatted, please run 'go fmt ./...' to format your source code before committing" exit 1 fi # Due to the way composites work, vet will fail for some of our tests so we ignore it vetcount=`go tool vet -composites=true ./ 2>&1 | wc -l` if [ $vetcount -gt 0 ]; then echo "Some files aren't passing vet heuristics, please run 'go vet ./...' to see the errors it flags and correct your source code before committing" exit 1 fi exit 0 # Ensure FIXME lines are removed before commit. fixme_lines=$(git diff --cached | grep ^+ | grep -v pre-commit | grep FIXME | sed 's_^+\s*__g') if [ "$todo_lines" != "" ]; then echo "Please remove the following lines:" echo -e "$todo_lines" exit 1 fi