From bf7bebbfef027e54a688fe28bf4268ce9ede4fa4 Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Sun, 16 Nov 2025 20:55:39 +0100 Subject: [PATCH] refactor: remove all skip-fmt flags and enforce all checks always --- .githooks/pre-commit | 8 ++++---- scripts/meta/shell_check.sh | 28 ++++++++-------------------- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 2e6ed92..8f2e369 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -33,11 +33,11 @@ if [[ ${#staged_files[@]} -gt 0 ]]; then printf ' ✓ Auto-fixes applied and staged\n' fi -printf 'Running shell_check validation (shellcheck only, skip formatting check)...\n' +printf 'Running shell_check validation...\n' -# Run shell_check but only check for actual errors (shellcheck, syntax), not formatting -if ! scripts/meta/shell_check.sh --skip-install --skip-fmt 2>&1; then - printf '\nCommit aborted: shell_check reported issues that cannot be auto-fixed.\n' >&2 +# Run shell_check to validate all checks +if ! scripts/meta/shell_check.sh --skip-install 2>&1; then + printf '\nCommit aborted: shell_check reported issues.\n' >&2 printf 'Fix the remaining problems and retry the commit.\n' >&2 exit 1 fi diff --git a/scripts/meta/shell_check.sh b/scripts/meta/shell_check.sh index a716ff4..4f2b001 100755 --- a/scripts/meta/shell_check.sh +++ b/scripts/meta/shell_check.sh @@ -23,7 +23,6 @@ ROOT_DIR="$DEFAULT_ROOT" SKIP_INSTALL="false" INSTALL_ONLY="false" LIST_ONLY="false" -SKIP_FMT="false" VERBOSE="false" log_info() { @@ -43,15 +42,12 @@ usage() { Usage: $(basename "$0") [options] Options: - --path DIR Root directory to scan (default: repo root at $DEFAULT_ROOT) - --skip-install Skip installing linters - --install-only Only install linters, do not scan - --list-only Only list discovered shell files, do not run linters - --skip-fmt Skip shfmt formatting checks (useful after auto-fixing) - --verbose Print additional details while running - -h, --help Show this help - -Linters used: + --path DIR Root directory to scan (default: repo root at $DEFAULT_ROOT) + --skip-install Skip installing linters + --install-only Only install linters, do not scan + --list-only Only list discovered shell files, do not run linters + --verbose Print additional details while running + -h, --help Show this helpLinters used: Required: shellcheck, shfmt Optional (if available): checkbashisms, bashate Syntax checks: bash -n, zsh -n (if installed), sh/dash -n @@ -76,10 +72,6 @@ while [[ $# -gt 0 ]]; do LIST_ONLY="true" shift ;; - --skip-fmt) - SKIP_FMT="true" - shift - ;; --verbose) VERBOSE="true" shift @@ -278,9 +270,7 @@ run_linters() { log_info "Running shfmt (diff mode)..." local shfmt_out="$TMPDIR/shfmt.diff" - if [[ $SKIP_FMT == "true" ]]; then - log_info "Skipping shfmt (--skip-fmt flag)" - elif is_cmd shfmt; then + if is_cmd shfmt; then if ! shfmt -d -i 2 -ci -sr -s "${FILES[@]}" >"$shfmt_out" 2>&1; then # shfmt returns non-zero when diff exists issues=$((issues + 1)) @@ -376,9 +366,7 @@ run_linters() { printf '\n\033[1;32m-- shellcheck: PASS (no issues) --\033[0m\n' fi - if [[ $SKIP_FMT == "true" ]]; then - printf '\n\033[1;32m-- shfmt: SKIPPED (--skip-fmt) --\033[0m\n' - elif [[ -s $shfmt_out ]]; then + if [[ -s $shfmt_out ]]; then printf '\n\033[1m-- shfmt (diffs found) --\033[0m\n' cat "$shfmt_out" else