* feat: kubesphere 4.0 Signed-off-by: ci-bot <ci-bot@kubesphere.io> * feat: kubesphere 4.0 Signed-off-by: ci-bot <ci-bot@kubesphere.io> --------- Signed-off-by: ci-bot <ci-bot@kubesphere.io> Co-authored-by: ks-ci-bot <ks-ci-bot@example.com> Co-authored-by: joyceliu <joyceliu@yunify.com>
50 lines
1.4 KiB
Bash
Executable File
50 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script checks whether the source code needs to be formatted or not by
|
|
# `gofmt`. Run `hack/update-gofmt.sh` to actually format sources.
|
|
#
|
|
# Note: gofmt output can change between go versions.
|
|
#
|
|
# Usage: `hack/verify-gofmt.sh`.
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
|
source "${KUBE_ROOT}/hack/lib/init.sh"
|
|
|
|
cd "${KUBE_ROOT}"
|
|
|
|
kube::golang::verify_go_version
|
|
|
|
find_files() {
|
|
find . -not \( \
|
|
\( \
|
|
-wholename './output' \
|
|
-o -wholename './.git' \
|
|
-o -wholename './_output' \
|
|
-o -wholename './_gopath' \
|
|
-o -wholename './release' \
|
|
-o -wholename './target' \
|
|
-o -wholename '*/third_party/*' \
|
|
-o -wholename '*/vendor/*' \
|
|
-o -wholename './staging/src/kubesphere.io/client-go/*vendor/*' \
|
|
-o -wholename './staging/src/kubesphere.io/api/*/zz_generated.deepcopy.go' \
|
|
-o -wholename '*/bindata.go' \
|
|
\) -prune \
|
|
\) -name '*.go'
|
|
}
|
|
|
|
# gofmt exits with non-zero exit code if it finds a problem unrelated to
|
|
# formatting (e.g., a file does not parse correctly). Without "|| true" this
|
|
# would have led to no useful error message from gofmt, because the script would
|
|
# have failed before getting to the "echo" in the block below.
|
|
diff=$(find_files | xargs gofmt -d -s 2>&1) || true
|
|
if [[ -n "${diff}" ]]; then
|
|
echo "${diff}" >&2
|
|
echo >&2
|
|
echo "Run ./hack/update-gofmt.sh" >&2
|
|
exit 1
|
|
fi
|