From 1395d3d9bfbba924b2bd9638860380fd380c1351 Mon Sep 17 00:00:00 2001 From: Andrew Gerrand Date: Thu, 15 Nov 2012 19:58:49 +0100 Subject: [PATCH] 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 --- misc/git/pre-commit | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 misc/git/pre-commit diff --git a/misc/git/pre-commit b/misc/git/pre-commit new file mode 100755 index 00000000000..18b7f832f36 --- /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