Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. STAGED_GO_FILES=$(git diff --cached --name-only | grep ".go$")
  4.  
  5. if [[ "$STAGED_GO_FILES" = "" ]]; then
  6. exit 0
  7. fi
  8.  
  9. GOLINT=$GOPATH/bin/golint
  10. GOIMPORTS=$GOPATH/bin/goimports
  11.  
  12. # Check for golint
  13. if [[ ! -x "$GOLINT" ]]; then
  14. printf "\t\033[41mPlease install golint\033[0m (go get -u golang.org/x/lint/golint)"
  15. exit 1
  16. fi
  17.  
  18. # Check for goimports
  19. if [[ ! -x "$GOIMPORTS" ]]; then
  20. printf "\t\033[41mPlease install goimports\033[0m (go get golang.org/x/tools/cmd/goimports)"
  21. exit 1
  22. fi
  23.  
  24. PASS=true
  25.  
  26. for FILE in $STAGED_GO_FILES
  27. do
  28. # Run goimports on the staged file
  29. $GOIMPORTS -w $FILE
  30.  
  31. # Run golint on the staged file and check the exit status
  32. $GOLINT "-set_exit_status" $FILE
  33. if [[ $? == 1 ]]; then
  34. printf "\t\033[31mgolint $FILE\033[0m \033[0;30m\033[41mFAILURE!\033[0m\n"
  35. PASS=false
  36. else
  37. printf "\t\033[32mgolint $FILE\033[0m \033[0;30m\033[42mpass\033[0m\n"
  38. fi
  39.  
  40. # Run govet on the staged file and check the exit status
  41. go vet $FILE
  42. if [[ $? != 0 ]]; then
  43. printf "\t\033[31mgo vet $FILE\033[0m \033[0;30m\033[41mFAILURE!\033[0m\n"
  44. PASS=false
  45. else
  46. printf "\t\033[32mgo vet $FILE\033[0m \033[0;30m\033[42mpass\033[0m\n"
  47. fi
  48. done
  49.  
  50. if ! $PASS; then
  51. printf "\033[0;30m\033[41mCOMMIT FAILED\033[0m\n"
  52. exit 1
  53. else
  54. printf "\033[0;30m\033[42mCOMMIT SUCCEEDED\033[0m\n"
  55. fi
  56.  
  57. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement