github.com/huandu/go@v0.0.0-20151114150818-04e615e41150/misc/git/pre-commit (about) 1 #!/bin/sh 2 # Copyright 2012 The Go Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style 4 # license that can be found in the LICENSE file. 5 6 # git gofmt pre-commit hook 7 # 8 # To use, store as .git/hooks/pre-commit inside your repository and make sure 9 # it has execute permissions. 10 # 11 # This script does not handle file names that contain spaces. 12 13 gofiles=$(git diff --cached --name-only --diff-filter=ACM | grep '.go$') 14 [ -z "$gofiles" ] && exit 0 15 16 unformatted=$(gofmt -l $gofiles) 17 [ -z "$unformatted" ] && exit 0 18 19 # Some files are not gofmt'd. Print message and fail. 20 21 echo >&2 "Go files must be formatted with gofmt. Please run:" 22 for fn in $unformatted; do 23 echo >&2 " gofmt -w $PWD/$fn" 24 done 25 26 exit 1