constellation/bazel/ci/shfmt.sh.in
Paul Meyer e3f37e9a38 bazel: add shfmt to tidy target
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-03-16 04:39:45 -04:00

36 lines
728 B
Bash

#!/usr/bin/env bash
lib=$(realpath @@BASE_LIB@@) || exit 1
shfmt=$(realpath @@SHFMT@@) || exit 1
# shellcheck source=lib.bash
if ! source "${lib}"; then
echo "Error: could not find import"
exit 1
fi
cd "${BUILD_WORKSPACE_DIRECTORY}" || exit 1
scriptsStr=$(${shfmt} -f "${BUILD_WORKSPACE_DIRECTORY}")
readarray -t <<< "${scriptsStr}"
scripts=("${MAPFILE[@]}")
excludeDirs=(
"helm/charts/cilium"
)
for exclude in "${excludeDirs[@]}"; do
for i in "${!scripts[@]}"; do
if [[ ${scripts[i]} == *"${exclude}"* ]]; then
unset 'scripts[i]'
fi
done
done
echo "Formatting the following scripts with shfmt:"
for script in "${scripts[@]}"; do
echo " ${script}"
done
${shfmt} -i 2 -s -w -sr "${scripts[@]}"