anaconda/anaconda-40.22.3.13/tests/shellcheck/run_shellcheck.sh

40 lines
1.1 KiB
Bash
Raw Normal View History

2024-11-14 21:39:56 -08:00
#!/bin/bash
# If $top_srcdir has not been set by automake, detect it
if [ -z "$top_srcdir" ]; then
top_srcdir="$(realpath "$(dirname "$0")/../..")"
fi
source "${top_srcdir}/tests/shellcheck/ignores.sh"
# Check if this test can be run
if ! type shellcheck > /dev/null 2>&1 ; then
echo "SKIP - shellcheck must be installed to run it."
exit 77
fi
# Identify which shellcheck version is running to debug fails due to version bump
shellcheck --version
rpm -q ShellCheck
echo
# Ignore files according to path patterns
pushd "${top_srcdir}" > /dev/null || return 1
files=$(git ls-files)
# shellcheck disable=SC2154 # comes from the file sourced earlier
for ignore in "${ignore_patterns[@]}" ; do
files=$(echo "$files" | grep -v "$ignore")
done
# Find files that are shell scripts
files=$(echo "$files" | xargs file | grep "shell script" | awk -F ":" '{print $1}')
# List files being checked
echo -e "Files to be checked:\n--------------------\n$files\n"
# Do the actual linting
echo -e "Warnings found:\n---------------"
if ! echo "$files" | xargs shellcheck -f gcc ; then
exit 1
fi