]>
Commit | Line | Data |
---|---|---|
5cdca5b1 | 1 | # Global ShellCheck exclusions: |
8df0bde3 DS |
2 | # |
3 | # ShellCheck can't follow non-constant source. Use a directive to specify location. [SC1090] | |
4 | # Not following: a was not specified as input (see shellcheck -x). [SC1091] | |
5 | # Prefer putting braces around variable references even when not strictly required. [SC2250] | |
6 | # In POSIX sh, 'local' is undefined. [SC2039] # older ShellCheck versions | |
7 | # In POSIX sh, 'local' is undefined. [SC3043] # newer ShellCheck versions | |
5cdca5b1 AZ |
8 | |
9 | SHELLCHECKSCRIPTS = | |
10 | ||
11 | JUST_SHELLCHECK_OPTS = $(addprefix shellcheck-here-,$(subst /,^,$(1))) | |
12 | JUST_CHECKBASHISMS_OPTS = $(addprefix checkbashisms-here-,$(subst /,^,$(1))) | |
13 | SHELLCHECK_OPTS = $(call JUST_SHELLCHECK_OPTS,$(1)) $(call JUST_CHECKBASHISMS_OPTS,$(1)) | |
14 | ||
0425d588 | 15 | PHONY += shellcheck |
5cdca5b1 AZ |
16 | |
17 | _STGT = $(subst ^,/,$(subst shellcheck-here-,,$@)) | |
18 | shellcheck-here-%: | |
c3ef9f75 | 19 | if HAVE_SHELLCHECK |
5cdca5b1 | 20 | shellcheck --format=gcc --enable=all --exclude=SC1090,SC1091,SC2039,SC2250,SC3043 $$([ -n "$(SHELLCHECK_SHELL)" ] && echo "--shell=$(SHELLCHECK_SHELL)") "$$([ -e "$(_STGT)" ] || echo "$(srcdir)/")$(_STGT)" |
c3ef9f75 | 21 | else |
5cdca5b1 | 22 | @echo "skipping shellcheck of" $(_STGT) "because shellcheck is not installed" |
c3ef9f75 | 23 | endif |
5cdca5b1 | 24 | |
0425d588 | 25 | shellcheck: $(SHELLCHECKSCRIPTS) $(call JUST_SHELLCHECK_OPTS,$(SHELLCHECKSCRIPTS)) |
f7d7ee05 | 26 | |
5cdca5b1 | 27 | |
0425d588 | 28 | PHONY += checkbashisms |
5cdca5b1 | 29 | |
f7d7ee05 | 30 | # command -v *is* specified by POSIX and every shell in existence supports it |
5cdca5b1 AZ |
31 | _BTGT = $(subst ^,/,$(subst checkbashisms-here-,,$@)) |
32 | checkbashisms-here-%: | |
f7d7ee05 | 33 | if HAVE_CHECKBASHISMS |
5cdca5b1 AZ |
34 | ! { [ -n "$(SHELLCHECK_SHELL)" ] && echo '#!/bin/$(SHELLCHECK_SHELL)'; cat "$$([ -e "$(_BTGT)" ] || echo "$(srcdir)/")$(_BTGT)"; } | \ |
35 | checkbashisms -npx 2>&1 | grep -vFe "'command' with option other than -p" -e 'command -v' -e 'any possible bashisms' $(CHECKBASHISMS_IGNORE) >&2 | |
f7d7ee05 | 36 | else |
5cdca5b1 | 37 | @echo "skipping checkbashisms of" $(_BTGT) "because checkbashisms is not installed" |
f7d7ee05 | 38 | endif |
5cdca5b1 | 39 | |
0425d588 | 40 | checkbashisms: $(SHELLCHECKSCRIPTS) $(call JUST_CHECKBASHISMS_OPTS,$(SHELLCHECKSCRIPTS)) |