diff --git a/scripts/orchestra_e2e_healthcheck.sh b/scripts/orchestra_e2e_healthcheck.sh index 7058821..ce463d2 100755 --- a/scripts/orchestra_e2e_healthcheck.sh +++ b/scripts/orchestra_e2e_healthcheck.sh @@ -6,7 +6,8 @@ readonly ROOT=$(cd "$(dirname "$0")/.." && pwd) # Space-separated check names; each has a check_ function. CHECKS="repo_root_readable scripts_dir_present healthcheck_executable_bit selftest_present test_healthcheck_present readme_present -no_crlf_line_endings no_tabs_in_scripts" +no_crlf_line_endings no_tabs_in_scripts +shebang_is_bash usage_text_mentions_every_flag" # name=ok / name=fail pairs, in run order. RESULTS= @@ -37,6 +38,25 @@ check_no_tabs_in_scripts() { ! grep -q "$(printf '\t')" "$ROOT"/scripts/*.sh 2>/dev/null } +check_shebang_is_bash() { + [ -d "$ROOT/scripts" ] || return 1 + local f + for f in "$ROOT"/scripts/*.sh; do + [ "$(head -n 1 "$f")" = '#!/usr/bin/env bash' ] || return 1 + done +} + +check_usage_text_mentions_every_flag() { + local text flag + text=$(usage text) + for flag in --quiet --json --help; do + case "$text" in + *"$flag"*) ;; + *) return 1 ;; + esac + done +} + # emit