constellation/bazel/ci/shellcheck.sh.in
Moritz Sanft 367136add2
terraform-provider: support importing Constellation clusters (#2702)
* terraform-provider: support importing Constellation clusters

* bazel: shfmt exclusion for import script

* ci: fix godot check

* bazel: shellcheck exclusion for import script

* Update dev-docs/workflows/terraform-provider.md

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>

* ci: fix Terraform lock exclude directories

---------

Co-authored-by: Adrian Stobbe <stobbe.adrian@gmail.com>
2023-12-12 16:00:03 +01:00

69 lines
1.6 KiB
Bash

#!/usr/bin/env bash
###### script header ######
lib=$(realpath @@BASE_LIB@@) || exit 1
stat "${lib}" >> /dev/null || exit 1
# shellcheck source=../sh/lib.bash
if ! source "${lib}"; then
echo "Error: could not find import"
exit 1
fi
shfmt=$(realpath @@SHFMT@@)
stat "${shfmt}" >> /dev/null
shellcheck=$(realpath @@SHELLCHECK@@)
stat "${shellcheck}" >> /dev/null
cd "${BUILD_WORKSPACE_DIRECTORY}"
###### script body ######
scriptsStr=$(${shfmt} -f "${BUILD_WORKSPACE_DIRECTORY}")
readarray -t <<< "${scriptsStr}"
scripts=("${MAPFILE[@]}")
excludeDirs=(
"internal/constellation/helm/charts/cilium"
"build"
"docs/node_modules"
"terraform-provider-constellation/examples"
)
excludeFiles=(
"bazel/bazel-complete.bash"
)
echo "The following scripts are excluded by their directory and won't be linted with shellcheck:"
for exclude in "${excludeDirs[@]}"; do
for i in "${!scripts[@]}"; do
if [[ ${scripts[i]} == "${BUILD_WORKSPACE_DIRECTORY}/${exclude}"* ]]; then
echo " ${scripts[i]}"
unset 'scripts[i]'
fi
done
done
echo "The following scripts are excluded and won't be linted with shellcheck:"
for exclude in "${excludeFiles[@]}"; do
for i in "${!scripts[@]}"; do
if [[ ${scripts[i]} == "${BUILD_WORKSPACE_DIRECTORY}/${exclude}" ]]; then
echo " ${scripts[i]}"
unset 'scripts[i]'
fi
done
done
echo "Linting the following scripts with shellcheck:"
for script in "${scripts[@]}"; do
echo " ${script}"
done
statuscode=0
for file in "${scripts[@]}"; do
${shellcheck} --severity=info "${file}" || statuscode=$?
done
exit "${statuscode}"