diff --git a/git_template/hooks/pre-commit b/git_template/hooks/pre-commit new file mode 100755 index 0000000..68c1026 --- /dev/null +++ b/git_template/hooks/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 diff --git a/gitconfig b/gitconfig index 633793d..4e414ce 100644 --- a/gitconfig +++ b/gitconfig @@ -32,6 +32,8 @@ autocrlf = input editor = vim filemode = false +[init] + templatedir = ~/.git_template [merge] tool = vimdiff [push]