Add Makefile command to run checkbashisms on all /bin/sh scripts
Based on the shellcheck make target, add a target which checks for violations of POSIX standards for shell scripts Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Gabriel A. Devenyi <gdevenyi@gmail.com> Closes #10513
This commit is contained in:
parent
a2ec738c75
commit
d2bce6d036
18
Makefile.am
18
Makefile.am
|
@ -114,7 +114,7 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PHONY += codecheck
|
PHONY += codecheck
|
||||||
codecheck: cstyle shellcheck flake8 mancheck testscheck vcscheck
|
codecheck: cstyle shellcheck checkbashisms flake8 mancheck testscheck vcscheck
|
||||||
|
|
||||||
PHONY += checkstyle
|
PHONY += checkstyle
|
||||||
checkstyle: codecheck commitcheck
|
checkstyle: codecheck commitcheck
|
||||||
|
@ -146,6 +146,22 @@ shellcheck:
|
||||||
echo "skipping shellcheck because shellcheck is not installed"; \
|
echo "skipping shellcheck because shellcheck is not installed"; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
PHONY += checkbashisms
|
||||||
|
checkbashisms:
|
||||||
|
@if type checkbashisms > /dev/null 2>&1; then \
|
||||||
|
checkbashisms -n -p -x \
|
||||||
|
$$(find ${top_srcdir} \
|
||||||
|
-name '.git' -prune \
|
||||||
|
-o -name 'build' -prune \
|
||||||
|
-o -name 'tests' -prune \
|
||||||
|
-o -name 'config' -prune \
|
||||||
|
-o -type f ! -name 'config*' \
|
||||||
|
! -name 'libtool' \
|
||||||
|
-exec bash -c 'awk "NR==1 && /\#\!.*bin\/sh.*/ {print FILENAME;}" "{}"' \;); \
|
||||||
|
else \
|
||||||
|
echo "skipping checkbashisms because checkbashisms is not installed"; \
|
||||||
|
fi
|
||||||
|
|
||||||
PHONY += mancheck
|
PHONY += mancheck
|
||||||
mancheck:
|
mancheck:
|
||||||
@if type mandoc > /dev/null 2>&1; then \
|
@if type mandoc > /dev/null 2>&1; then \
|
||||||
|
|
Loading…
Reference in New Issue