#!/bin/bash # Template generated by https://github.com/coreos/repo-templates; do not edit downstream set -euo pipefail main() { local found_errors="false" # Let's start with error, then we can do warning, info, style local -r severity="error" while IFS= read -r -d '' f; do # Skip non-text files that are very unlikely to be shell scripts if [[ "$(file -b --mime-type "${f}" | sed 's|/.*||')" != "text" ]]; then continue fi shebang="$(head -1 "${f}")" if [[ "${f}" == *.sh ]] || \ [[ ${shebang} =~ ^#!/.*/bash.* ]] || \ [[ ${shebang} =~ ^#!/.*/env\ bash ]]; then echo "[+] Checking ${f}" shellcheck --external-sources --shell bash --severity="${severity}" "${f}" || found_errors="true" bash -n "${f}" || found_errors="true" fi done< <(find . -path "./.git" -prune -o -path "./vendor" -prune -o -type f -print0) if [[ "${found_errors}" != "false" ]]; then echo "[+] Found errors with ShellCheck" exit 1 fi echo "[+] No error found with ShellCheck" exit 0 } main "${@}"