Compare commits
7 commits
Author | SHA1 | Date | |
---|---|---|---|
|
cb93741050 | ||
|
5a7b9bb323 | ||
|
2b59bb94b0 | ||
|
ea2aca161c | ||
|
22ce003d81 | ||
|
804edaad62 | ||
|
f02c685d9a |
2 changed files with 37 additions and 2 deletions
|
@ -5,4 +5,4 @@ install:
|
|||
- go get github.com/constabulary/gb/...
|
||||
- go get github.com/golang/lint/golint
|
||||
- go get github.com/fzipp/gocyclo
|
||||
script: ./hooks/pre-commit
|
||||
script: bash -x ./hooks/pre-commit
|
||||
|
|
|
@ -1,9 +1,44 @@
|
|||
#! /bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
# make the GIT_DIR and GIT_INDEX_FILE absolute, before we change dir
|
||||
export GIT_DIR=$(readlink -f `git rev-parse --git-dir`)
|
||||
if [ -n "${GIT_INDEX_FILE:+x}" ]; then
|
||||
export GIT_INDEX_FILE=$(readlink -f "$GIT_INDEX_FILE")
|
||||
fi
|
||||
|
||||
wd=`pwd`
|
||||
|
||||
# create a temp dir. The `trap` incantaion will ensure that it is removed again
|
||||
# when this script completes.
|
||||
tmpdir=`mktemp -d`
|
||||
trap 'rm -rf "$tmpdir"' EXIT
|
||||
cd "$tmpdir"
|
||||
|
||||
# get a copy of the index
|
||||
git checkout-index -a
|
||||
|
||||
# run our checks
|
||||
golint src/...
|
||||
go fmt ./src/...
|
||||
go tool vet --shadow ./src
|
||||
gocyclo -over 12 src/
|
||||
gb test
|
||||
|
||||
# if there are no changes from the index, we are done
|
||||
git diff --quiet && exit 0
|
||||
|
||||
# we now need to apply any changes made to both the index and the working copy.
|
||||
# so, first get a patch
|
||||
git diff > "$GIT_DIR/pre-commit.patch"
|
||||
|
||||
# add the changes to the index
|
||||
git add -u
|
||||
|
||||
# attempt to apply the changes to the wc (but don't fail the commit for it if
|
||||
# there are conflicts).
|
||||
cd "$wd"
|
||||
git apply "$GIT_DIR/pre-commit.patch" 2>/dev/null &&
|
||||
rm "$GIT_DIR/pre-commit.patch" ||
|
||||
echo "warning: unable to apply changes from commit hook to working copy; patch is in $GIT_DIR/pre-commit.patch" >&2
|
||||
|
|
Reference in a new issue