sigs.k8s.io/cluster-api/bootstrap/kubeadm@v0.0.0-20191016155141-23a891785b60/hack/verify-shellcheck.sh (about) 1 #!/usr/bin/env bash 2 # Copyright 2019 The Kubernetes Authors. 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 16 # set -o errexit 17 set -o nounset 18 set -o pipefail 19 20 # shellcheck source=/dev/null 21 source "$(dirname "$0")/utils.sh" 22 ROOT_PATH=$(get_root_path) 23 24 # create a temporary directory 25 TMP_DIR=$(mktemp -d) 26 27 # cleanup on exit 28 cleanup() { 29 echo "Cleaning up..." 30 rm -rf "${TMP_DIR}" 31 } 32 trap cleanup EXIT 33 34 # install shellcheck (Linux-x64 only!) 35 cd "${TMP_DIR}" || exit 36 VERSION="shellcheck-v0.6.0" 37 DOWNLOAD_FILE="${VERSION}.linux.x86_64.tar.xz" 38 wget https://storage.googleapis.com/shellcheck/"${DOWNLOAD_FILE}" 39 tar xf "${DOWNLOAD_FILE}" 40 cd "${VERSION}" || exit 41 42 echo "Running shellcheck..." 43 cd "${ROOT_PATH}" || exit 44 OUT="${TMP_DIR}/out.log" 45 FILES=$(find . -name "*.sh") 46 while read -r file; do 47 "${TMP_DIR}/${VERSION}/shellcheck" "$file" >> "${OUT}" 2>&1 48 done <<< "$FILES" 49 50 if [[ -s "${OUT}" ]]; then 51 echo "Found errors:" 52 cat "${OUT}" 53 exit 1 54 fi