pre-commit.sh 523 B

123456789101112131415161718
  1. #!/bin/bash -eu
  2. # TODO: Only colorize messages given a suitable terminal.
  3. # FIXME: Handle case in which no stash entry is created due to no changes.
  4. printf "\e[30m=== PRE-COMMIT STARTING ===\e[m\n"
  5. git stash save --quiet --keep-index --include-untracked
  6. if go build -v ./... && go test -v -cover ./... && go vet ./... && golint . && travis-lint; then
  7. result=$?
  8. printf "\e[32m=== PRE-COMMIT SUCCEEDED ===\e[m\n"
  9. else
  10. result=$?
  11. printf "\e[31m=== PRE-COMMIT FAILED ===\e[m\n"
  12. fi
  13. git stash pop --quiet
  14. exit $result