#!/bin/sh

# This pre-commit hook will abort if a committed file doesn't pass gofmt.
# By Even Shaw <edsrzf@gmail.com>
# http://github.com/edsrzf/gofmt-git-hook

test_fmt() {
    hash gofmt 2>&- || { echo >&2 "gofmt not in PATH."; exit 1; }
    IFS='
'
    for file in `git diff --cached --name-only --diff-filter=ACM | grep '\.go$'`
    do
        output=`git cat-file -p :$file | gofmt -l 2>&1`
        if test $? -ne 0
        then
            output=`echo "$output" | sed "s,<standard input>,$file,"`
            syntaxerrors="${list}${output}\n"
        elif test -n "$output"
        then
            list="${list}${file}\n"
        fi
    done
    exitcode=0
    if test -n "$syntaxerrors"
    then
        echo >&2 "gofmt found syntax errors:"
        printf "$syntaxerrors"
        exitcode=1
    fi
    if test -n "$list"
    then
        echo >&2 "gofmt needs to format these files (run gofmt -w and git add):"
        printf "$list"
        exitcode=1
    fi
    exit $exitcode
}

case "$1" in
    --about )
        echo "Check Go code formatting"
        ;;
    * )
        test_fmt
        ;;
esac
