Notably:
- We now always provide our own copies of both `shellcheck` and `shfmt` (via `get_sources.sh`)
- Set-up of the pre-commit hook is now at `lint-hook.sh`, so we can call it directly (and give users a way to set-up the hook directly if necessary)
- The `lint` CI stage is now performed on Fedora instead of Alpine (like the rest of the build process), but only the minimal set-up is performed to download and set-up the necessary tools
Signed-off-by: celenity <celenity@celenity.dev>
ironfox-oss/IronFox!162
Add a blocking `lint` CI stage (runs first, on a lightweight Alpine
image) plus a core.hooksPath pre-commit hook, with scripts/lint.sh as
the shared runner for CI, the hook, and manual use. Checks are
configured in .shellcheckrc and formatting in .editorconfig.
Reformat all scripts with shfmt (2-space indent, switch-case indent,
space redirects) via .editorconfig, so a bare `shfmt` is consistent
everywhere. bootstrap.sh installs shellcheck + shfmt per-OS and
enables the pre-commit hook.
The hook is a convenience (bypassable with --no-verify); the CI
`lint-scripts` job is the enforcement gate. SC2086/SC2046 are
disabled for now as tracked follow-up.
MR-author: Akash Yadav <itsaky01@gmail.com>
Co-authored-by: Akash Yadav <contact@itsaky.com>
Approved-by: celenity <celenity@celenity.dev>
Merged-by: celenity <celenity@celenity.dev>