summaryrefslogtreecommitdiff
path: root/bin/strict-bashism-check
diff options
context:
space:
mode:
Diffstat (limited to 'bin/strict-bashism-check')
-rwxr-xr-xbin/strict-bashism-check39
1 files changed, 28 insertions, 11 deletions
diff --git a/bin/strict-bashism-check b/bin/strict-bashism-check
index 3bb3884..cbf7e5b 100755
--- a/bin/strict-bashism-check
+++ b/bin/strict-bashism-check
@@ -49,37 +49,54 @@ trap 'rm -rf --one-file-system "${tmp_dir}"' EXIT
git archive "${tree}" | \
tar -C "${tmp_dir}" -x
+if ! cd "${tmp_dir}"; then
+ echo 'Cannot cd.'
+ exit 1
+fi
+
errors=$(
- cd "${tmp_dir}" || \
- echo 'Cannot cd.'
- find "bin" "conf" -type f -not -executable -not -name '.gitignore'
+ find bin conf lib -type f -not -executable -not -name '.gitignore'
)
if [ -n "${errors}" ]; then
- >&2 echo 'Non-executable files found in bin/ or conf/:'
+ >&2 echo 'Non-executable files found in bin/, conf/ or lib/:'
>&2 echo "${errors}"
exit 1
fi
errors=$(
-# shellcheck disable=SC2016
- find bin conf -type f -executable -exec grep -H '="\$(' {} \;
+ grep -r '\(\s\|^\)mysql buildmaster\($\|\s\)' bin lib conf
)
if [ -n "${errors}" ]; then
- >&2 echo 'Unnecessary quotes found:'
+ >&2 echo 'Style error: call "mysql_run_query" instead of "mysql buildmaster":'
>&2 echo "${errors}"
exit 1
fi
errors=$(
- cd "${tmp_dir}" || \
- echo 'Cannot cd.'
- shellcheck -x bin/* conf/* 2>&1
+# shellcheck disable=SC2016
+ find bin conf lib -type f -executable -exec grep -H '="\$(' {} \;
)
if [ -n "${errors}" ]; then
- >&2 echo 'shellcheck complains about the following:'
+ >&2 echo 'Unnecessary quotes found:'
>&2 echo "${errors}"
exit 1
fi
+
+if which shellcheck >/dev/null 2>&1; then
+ errors=$(
+ find bin conf lib \
+ -type f \
+ -not -name 'opcode_list' \
+ -not -name '.*' \
+ -exec shellcheck -x '{}' \; 2>&1
+ )
+
+ if [ -n "${errors}" ]; then
+ >&2 echo 'shellcheck complains about the following:'
+ >&2 echo "${errors}"
+ exit 1
+ fi
+fi