mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
69 lines
2.1 KiB
Bash
Executable File
69 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
SHELLCHECK_VERSION=${SHELLCHECK_VERSION:-0.8.0} # https://github.com/koalaman/shellcheck/releases
|
|
|
|
SRC="$(
|
|
cd "$(dirname "$0")/../.."
|
|
pwd -P
|
|
)"
|
|
echo "SRC: ${SRC}"
|
|
|
|
DIR_SHELLCHECK="${SRC}/cache/tools/shellcheck"
|
|
mkdir -p "${DIR_SHELLCHECK}"
|
|
|
|
MACHINE="${BASH_VERSINFO[5]}"
|
|
case "$MACHINE" in
|
|
*darwin*) SHELLCHECK_OS="darwin" ;;
|
|
*linux*) SHELLCHECK_OS="linux" ;;
|
|
*)
|
|
echo "unknown os: $MACHINE"
|
|
exit 3
|
|
;;
|
|
esac
|
|
|
|
case "$MACHINE" in
|
|
*aarch64*) SHELLCHECK_ARCH="aarch64" ;;
|
|
*x86_64*) SHELLCHECK_ARCH="x86_64" ;;
|
|
*)
|
|
echo "unknown arch: $MACHINE"
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
# https://github.com/koalaman/shellcheck/releases/download/v0.8.0/shellcheck-v0.8.0.darwin.x86_64.tar.xz
|
|
# https://github.com/koalaman/shellcheck/releases/download/v0.8.0/shellcheck-v0.8.0.linux.aarch64.tar.xz
|
|
# https://github.com/koalaman/shellcheck/releases/download/v0.8.0/shellcheck-v0.8.0.linux.x86_64.tar.xz
|
|
|
|
SHELLCHECK_FN="shellcheck-v${SHELLCHECK_VERSION}.${SHELLCHECK_OS}.${SHELLCHECK_ARCH}"
|
|
SHELLCHECK_FN_TARXZ="${SHELLCHECK_FN}.tar.xz"
|
|
DOWN_URL="https://github.com/koalaman/shellcheck/releases/download/v${SHELLCHECK_VERSION}/${SHELLCHECK_FN_TARXZ}"
|
|
SHELLCHECK_BIN="${DIR_SHELLCHECK}/${SHELLCHECK_FN}"
|
|
|
|
echo "MACHINE: ${MACHINE}"
|
|
echo "Down URL: ${DOWN_URL}"
|
|
echo "SHELLCHECK_BIN: ${SHELLCHECK_BIN}"
|
|
|
|
if [[ ! -f "${SHELLCHECK_BIN}" ]]; then
|
|
set -x
|
|
echo "Cache miss, downloading..."
|
|
wget -O "${SHELLCHECK_BIN}.tar.xz" "${DOWN_URL}"
|
|
tar -xf "${SHELLCHECK_BIN}.tar.xz" -C "${DIR_SHELLCHECK}" "shellcheck-v${SHELLCHECK_VERSION}/shellcheck"
|
|
mv -v "${DIR_SHELLCHECK}/shellcheck-v${SHELLCHECK_VERSION}/shellcheck" "${SHELLCHECK_BIN}"
|
|
rm -rf "${DIR_SHELLCHECK}/shellcheck-v${SHELLCHECK_VERSION}" "${SHELLCHECK_BIN}.tar.xz"
|
|
chmod +x "${SHELLCHECK_BIN}"
|
|
fi
|
|
|
|
|
|
ACTUAL_VERSION="$("${SHELLCHECK_BIN}" --version | grep "^version")"
|
|
echo "Running shellcheck ${ACTUAL_VERSION}"
|
|
|
|
# formats:
|
|
# checkstyle -- some XML format
|
|
# gcc - one per line, compact references; does not show the source
|
|
# tty - default for checkstyle
|
|
|
|
cd "${SRC}" || exit 3
|
|
# "${SHELLCHECK_BIN}" --help
|
|
"${SHELLCHECK_BIN}" --check-sourced --color=always --external-sources --shell=bash --severity=warning --format=tty compile.sh
|
|
|