#!/bin/bash KUBE_HOOKS_DIR="$(dirname "$(test -L "$0" && echo "$(dirname $0)/$(readlink "$0")" || echo "$0")")" files_need_gofmt="" files_need_boilerplate="" for file in $(git diff --cached --name-only --diff-filter ACM | grep "\.go" | grep -v -e "third_party" -e "Godeps"); do # Check for files that fail gofmt. diff="$(git show ":${file}" | gofmt -s -d)" if [[ -n "$diff" ]]; then files_need_gofmt="${files_need_gofmt} ${file}" fi # Check for files without the required boilerplate. boilerplate="$(${KUBE_HOOKS_DIR}/boilerplate.sh ${file})" if [[ "$boilerplate" -eq "0" ]]; then files_need_boilerplate="${files_need_boilerplate} ${file}" fi done # Check sh files for boilerplate for file in $(git diff --cached --name-only --diff-filter ACM | grep "\.sh" | grep -v "third_party"); do # Check for files without the required boilerplate. boilerplate="$(${KUBE_HOOKS_DIR}/boilerplate.sh ${file})" if [[ "$boilerplate" -eq "0" ]]; then files_need_boilerplate="${files_need_boilerplate} ${file}" fi done if [[ -n "${files_need_gofmt}" ]]; then ( echo echo "# *** ERROR: *** Some files have not been gofmt'd. To fix these" echo "# errors, run gofmt -s -w , or cut and paste the following:" echo "# gofmt -s -w ${files_need_gofmt}" echo "#" echo "# Your commit will be aborted unless you override this warning. To" echo "# commit in spite of these format errors, delete the following line:" echo "# COMMIT_BLOCKED_ON_GOFMT" ) >> $1 fi if [[ -n "${files_need_boilerplate}" ]]; then ( echo echo "# *** ERROR: *** Some files are missing the required boilerplate" echo "# header from hooks/boilerplate.txt:" for file in ${files_need_boilerplate}; do echo "# ${file}" done echo "#" echo "# Your commit will be aborted unless you fix these." echo "# COMMIT_BLOCKED_ON_BOILERPLATE" echo ) >> $1 fi