#!/bin/sh
# Copyright 2012 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
# SPDX-License-Identifier: BSD-3-Clause

# git gofmt pre-commit hook
#
# To use, store as .git/hooks/pre-commit inside your repository and make sure
# it has execute permissions.
#
# This script does not handle file names that contain spaces.

unformatted_files_count="$(git ls-files '**.go' | grep -ve^vendor | xargs gofmt -l | wc -l)"
if [[ "$unformatted_files_count" == 0 ]]; then
	exit 0
fi

<<GOFMT_MESSAGE cat >&2
${unformatted_files} go files must be formatted with \`go fmt\`. Please run:
	go fmt ./...
GOFMT_MESSAGE

exit 1
