volcano.sh/volcano@v1.9.0/hack/verify-gofmt.sh (about) 1 #!/bin/bash 2 3 # Copyright 2014 The Kubernetes Authors. 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 set -o errexit 18 set -o nounset 19 set -o pipefail 20 21 KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. 22 source "${KUBE_ROOT}/hack/lib/init.sh" 23 24 kube::golang::verify_go_version 25 26 cd "${KUBE_ROOT}" 27 28 find_files() { 29 find . -not \( \ 30 \( \ 31 -wholename './output' \ 32 -o -wholename './_output' \ 33 -o -wholename './_gopath' \ 34 -o -wholename './release' \ 35 -o -wholename './target' \ 36 -o -wholename '*/third_party/*' \ 37 -o -wholename '*/vendor/*' \ 38 -o -wholename '*/contrib/*' \ 39 -o -wholename './staging/src/k8s.io/client-go/*vendor/*' \ 40 \) -prune \ 41 \) -name '*.go' 42 } 43 # gofmt exits with non-zero exit code if it finds a problem unrelated to 44 # formatting (e.g., a file does not parse correctly). Without "|| true" this 45 # would have led to no useful error message from gofmt, because the script would 46 # have failed before getting to the "echo" in the block below. 47 GOFMT="gofmt -d -s" 48 diff=$(find_files | xargs ${GOFMT} 2>&1) || true 49 if [[ -n "${diff}" ]]; then 50 echo "${diff}" 51 exit 1 52 fi