mirror of
https://github.com/ironfox-oss/IronFox.git
synced 2026-07-31 18:07:06 -04:00
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. 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 enforces formatting. SC2086/SC2046 are disabled for now. SC2002 is disabled too, since shellcheck made it opt-in as of 0.11.0 while older versions (e.g. Alpine's in CI) still enable it by default.
16 lines
536 B
Bash
Executable File
16 lines
536 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# IronFox pre-commit hook: lints staged shell scripts with shellcheck + shfmt.
|
|
#
|
|
# Enabled by pointing git at this directory (done automatically by
|
|
# scripts/bootstrap.sh):
|
|
# git config core.hooksPath scripts/git-hooks
|
|
#
|
|
# This is a convenience only. It can be bypassed with `git commit --no-verify`,
|
|
# and it is not installed on fresh clones until bootstrap runs — so CI (the
|
|
# `lint-scripts` job) remains the real enforcement gate.
|
|
|
|
set -euo pipefail
|
|
|
|
exec "$(git rev-parse --show-toplevel)/scripts/lint.sh" --staged
|