From 8f4ed1f5dec5f61534b9e47b17a01318deb09cc0 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Thu, 11 Feb 2016 09:14:50 -0500 Subject: [PATCH] Force formatting of go --- git_template/hooks/pre-commit | 26 ++++++++++++++++++++++++++ gitconfig | 2 ++ 2 files changed, 28 insertions(+) create mode 100755 git_template/hooks/pre-commit 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]