docs-v2/.ci/shellcheck
Jason Stirnaman 54cc064063
feat(ci): add ShellCheck linter to Lefthook pre-commit hooks (#6891)
* feat(ci): add ShellCheck linter to Lefthook pre-commit hooks

Add shell script linting via ShellCheck to catch common bugs (unquoted
variables, missing error handling, POSIX portability issues) before commit.

- Create `.shellcheckrc` with project-wide defaults (disable SC1091, SC2154)
- Create `.ci/shellcheck/shellcheck.sh` wrapper (local binary → Docker fallback)
- Add `shellcheck` pre-commit hook in `lefthook.yml` with glob/exclude patterns

Lints 23 infrastructure scripts (test, CI, deploy, helpers) while excluding
36 documentation example scripts in `shared/text/` and `layouts/shortcodes/`.

https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6

* Update .shellcheckrc

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(ci): derive shellcheck minimum version from pinned version

Single source of truth — the minimum local version is now parsed from
SHELLCHECK_VERSION instead of being maintained as separate constants.
This prevents drift between the Docker image version and the local
binary requirement.

https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6

* fix(ci): remove unused external-sources from .shellcheckrc

external-sources=true only takes effect with the -x flag, which the
wrapper doesn't pass. Source-following isn't needed for pre-commit
linting of individual files, and SC1091 is already disabled.

https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-28 12:39:59 -06:00
..
shellcheck.sh feat(ci): add ShellCheck linter to Lefthook pre-commit hooks (#6891) 2026-02-28 12:39:59 -06:00