aboutsummaryrefslogtreecommitdiff
path: root/test/lint/lint-shebang.sh
diff options
context:
space:
mode:
authorvim88 <vim88vim88@gmail.com>2018-11-28 22:43:18 +0200
committervim88 <vim88vim88@gmail.com>2018-12-02 16:14:21 +0200
commit688f665a5e526fda0fb797bf617412fe9cbe64fd (patch)
tree5a9dc35e71cfd69c01a5c6a9aa18282483b2538b /test/lint/lint-shebang.sh
parent60b20c869f8df9a81b5080ebcbe8c9cf4e6b9d77 (diff)
downloadbitcoin-688f665a5e526fda0fb797bf617412fe9cbe64fd.tar.xz
Scripts and tools & Docs: Used #!/usr/bin/env bash instead of obsolete #!/bin/bash, added linting for .sh files shebang and updated the Developer Notes.
Diffstat (limited to 'test/lint/lint-shebang.sh')
-rwxr-xr-xtest/lint/lint-shebang.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/lint/lint-shebang.sh b/test/lint/lint-shebang.sh
new file mode 100755
index 0000000000..fda22592d3
--- /dev/null
+++ b/test/lint/lint-shebang.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+# Assert expected shebang lines
+
+export LC_ALL=C
+EXIT_CODE=0
+for PYTHON_FILE in $(git ls-files -- "*.py"); do
+ if [[ $(head -c 2 "${PYTHON_FILE}") == "#!" &&
+ $(head -n 1 "${PYTHON_FILE}") != "#!/usr/bin/env python3" ]]; then
+ echo "Missing shebang \"#!/usr/bin/env python3\" in ${PYTHON_FILE} (do not use python or python2)"
+ EXIT_CODE=1
+ fi
+done
+for SHELL_FILE in $(git ls-files -- "*.sh"); do
+ if [[ $(head -n 1 "${SHELL_FILE}") != "#!/usr/bin/env bash" &&
+ $(head -n 1 "${SHELL_FILE}") != "#!/bin/sh" ]]; then
+ echo "Missing expected shebang \"#!/usr/bin/env bash\" or \"#!/bin/sh\" in ${SHELL_FILE}"
+ EXIT_CODE=1
+ fi
+done
+exit ${EXIT_CODE}