diff --git a/scripts/check-manifests.sh b/scripts/check-manifests.sh index 93a3252..d3a499b 100755 --- a/scripts/check-manifests.sh +++ b/scripts/check-manifests.sh @@ -46,7 +46,8 @@ if [[ ! -f "$MARKETPLACE" ]]; then fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -# shellcheck source=lib/marketplace-plugins.sh +# Repo-root-relative, not script-dir-relative -- see tests/run-tests.sh for why. +# shellcheck source=scripts/lib/marketplace-plugins.sh source "$SCRIPT_DIR/lib/marketplace-plugins.sh" # Every local plugin directory marketplace.json claimed, canonicalized, so the diff --git a/tests/run-bats.sh b/tests/run-bats.sh index 608273d..391fa24 100755 --- a/tests/run-bats.sh +++ b/tests/run-bats.sh @@ -51,7 +51,9 @@ fi # than a rolling `wait -n` pool. SCRATCH_ROOT="$(mktemp -d)" trap 'rm -rf "$SCRATCH_ROOT"' EXIT -# shellcheck source=../scripts/lib/batch-run.sh +# Repo-root-relative -- see tests/run-tests.sh for why `../scripts/...` does not +# resolve here despite looking right. +# shellcheck source=scripts/lib/batch-run.sh source "$REPO_ROOT/scripts/lib/batch-run.sh" declare -a batch_args=() diff --git a/tests/run-tests.sh b/tests/run-tests.sh index ba5b521..bf9569b 100755 --- a/tests/run-tests.sh +++ b/tests/run-tests.sh @@ -58,7 +58,19 @@ done < <( # rolling `wait -n` pool. SCRATCH_ROOT="$(mktemp -d)" trap 'rm -rf "$SCRATCH_ROOT"' EXIT -# shellcheck source=lib/batch-run.sh +# The source= path below is repo-root-relative, matching scripts/install.sh:5 -- +# NOT script-dir-relative. The source-path used to resolve it is the cwd +# pre-commit invokes the linter from, which is the repo root, so `lib/...` +# (resolving to a nonexistent tests/lib/) and `../scripts/...` (escaping the repo +# entirely) both fail. Both spellings were live until issue #97, and neither was +# visible: the resulting SC1091 is `info` while .pre-commit-config.yaml pins +# `--severity=warning`. A directive that does not resolve also blinds +# test-vale-wrap.sh's `sourced_files()` exemption, which reads these same +# directives to find array seeding that lives in the sourced file. +# +# Do not start a comment line here with the linter's name -- it is parsed as a +# directive and errors out (SC1073). +# shellcheck source=scripts/lib/batch-run.sh source "$REPO_ROOT/scripts/lib/batch-run.sh" declare -a batch_args=()