From: Andrew Gerrand Date: Thu, 15 Nov 2012 18:58:49 +0000 (+0100) Subject: misc/git: add gofmt git pre-commit hook X-Git-Tag: go1.1rc2~1862 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1395d3d9bfbba924b2bd9638860380fd380c1351;p=gostls13.git misc/git: add gofmt git pre-commit hook R=golang-dev, bradfitz, ftrvxmtrx, franciscossouza, r, minux.ma CC=golang-dev https://golang.org/cl/6843044 --- diff --git a/misc/git/pre-commit b/misc/git/pre-commit new file mode 100755 index 0000000000..18b7f832f3 --- /dev/null +++ b/misc/git/pre-commit @@ -0,0 +1,26 @@ +#!/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. + +# 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. + +gofiles=$(git diff --cached --name-only --diff-filter=ACM | grep '.go$') +[ -z "$gofiles" ] && exit 0 + +unformatted=$(gofmt -l $gofiles) +[ -z "$unformatted" ] && exit 0 + +# Some files are not gofmt'd. Print message and fail. + +echo >&2 "Go files must be formatted with gofmt. Please run:" +for fn in $unformatted; do + echo >&2 " gofmt -w $PWD/$fn" +done + +exit 1