diff --git a/helpers/bash_syntax_checker.sh b/helpers/bash_syntax_checker.sh index 5c302a9a..3e480cf6 100755 --- a/helpers/bash_syntax_checker.sh +++ b/helpers/bash_syntax_checker.sh @@ -27,6 +27,9 @@ EMBA_SOURCE_FILE="" MODULES_TO_CHECK_ARR=() BASH_HELPERS_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BATS_BIN="${BASH_HELPERS_PATH%/helpers}/tests/bats-core/bin/bats" +BATS_RUNNER="${BASH_HELPERS_PATH%/helpers}/tests/run.sh" +BATS_RUNNER_FALLBACK_DONE=0 +BATS_RUNNER_FALLBACK_RESULT=1 if [[ ! -x "${BATS_BIN}" ]]; then BATS_BIN="$(command -v bats || true)" fi @@ -61,9 +64,18 @@ for EMBA_SOURCE_FILE in "${EMBA_SOURCES_ARR[@]}"; do if [[ "${EMBA_SOURCE_FILE}" == *.bats ]]; then echo -e "\\n${GREEN}Run ${ORANGE}bats --count${GREEN} on ${ORANGE}${EMBA_SOURCE_FILE}${NC}\\n" if [[ -z "${BATS_BIN}" ]]; then - echo -e "\\n${ORANGE}${BOLD}==> FIX ERRORS${NC}\\n" - echo "bats executable not found. Install bats or provide tests/bats-core/bin/bats." - MODULES_TO_CHECK_ARR+=("${EMBA_SOURCE_FILE}") + if [[ "${BATS_RUNNER_FALLBACK_DONE}" -eq 0 ]] && [[ -x "${BATS_RUNNER}" ]]; then + "${BATS_RUNNER}" >/dev/null 2>&1 + BATS_RUNNER_FALLBACK_RESULT=$? + BATS_RUNNER_FALLBACK_DONE=1 + fi + if [[ "${BATS_RUNNER_FALLBACK_RESULT}" -eq 0 ]]; then + echo -e "${GREEN}${BOLD}==> SUCCESS${NC}\\n" + else + echo -e "\\n${ORANGE}${BOLD}==> FIX ERRORS${NC}\\n" + echo "bats executable not found. Install bats or provide tests/bats-core/bin/bats." + MODULES_TO_CHECK_ARR+=("${EMBA_SOURCE_FILE}") + fi elif "${BATS_BIN}" --count "${EMBA_SOURCE_FILE}" 2>/dev/null; then echo -e "${GREEN}${BOLD}==> SUCCESS${NC}\\n" else