summaryrefslogtreecommitdiff
path: root/misc/git
diff options
context:
space:
mode:
authorAndrew Gerrand <adg@golang.org>2012-11-15 19:58:49 +0100
committerAndrew Gerrand <adg@golang.org>2012-11-15 19:58:49 +0100
commit7add35eb27a367fda28a76119a0c10544400c71c (patch)
treedefe25784353d57e065457ede2ecdc07ce8f72e6 /misc/git
parentbd1a481960562122f32a45da459012ab9acf0397 (diff)
downloadgo-7add35eb27a367fda28a76119a0c10544400c71c.tar.gz
misc/git: add gofmt git pre-commit hook
R=golang-dev, bradfitz, ftrvxmtrx, franciscossouza, r, minux.ma CC=golang-dev http://codereview.appspot.com/6843044
Diffstat (limited to 'misc/git')
-rwxr-xr-xmisc/git/pre-commit26
1 files changed, 26 insertions, 0 deletions
diff --git a/misc/git/pre-commit b/misc/git/pre-commit
new file mode 100755
index 000000000..18b7f832f
--- /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