mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
Local lint runs hand the container the files changed since the merge-base with INFINITO_LINT_DIFF_BASE; a changed tool config or shared lint script, CI, or a missing base fall back to the full run. autoformat records a content stamp after a clean ansible-lint --fix, so lint-ansible skips the second pass on an unchanged tree. shellcheck and sqlfluff check in parallel. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
33 lines
857 B
Bash
Executable File
33 lines
857 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# shellcheck shell=bash
|
|
#
|
|
# Run ESLint against the project's JavaScript files (Playwright specs +
|
|
# persona helpers). Config: eslint.config.js at the repo root.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
|
|
|
|
cd "${REPO_ROOT}"
|
|
|
|
if [[ ! -d "node_modules/eslint" ]]; then
|
|
echo "ESLint not installed. Run 'make install-lint' first." >&2
|
|
exit 127
|
|
fi
|
|
|
|
# shellcheck source=scripts/lint/diff/files.sh
|
|
source "${SCRIPT_DIR}/diff/files.sh"
|
|
|
|
if ! lint_diff_active javascript; then
|
|
npx --no-install eslint 'roles/**/files/**/*.js'
|
|
exit
|
|
fi
|
|
|
|
mapfile -t js_files < <(lint_diff_files '^roles/[^/]+/files/.*\.js$')
|
|
if [[ "${#js_files[@]}" -eq 0 ]]; then
|
|
echo "No changed JavaScript files."
|
|
exit 0
|
|
fi
|
|
npx --no-install eslint --no-warn-ignored "${js_files[@]}"
|