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