mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 23:07:59 +01:00
Merge #14831: Scripts and tools: Use #!/usr/bin/env bash instead of #!/bin/bash.
688f665a5e
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. (vim88)
Pull request description:
As it was discussed in [#13510](https://github.com/bitcoin/bitcoin/pull/13510), it is better to use `#!/usr/bin/env bash` instead of `#!/bin/bash`.
Tree-SHA512: 25f71eb9a6a0cdc91568b5c6863205c5fe095f77a69e633503a2ac7805bd9013af8538e538c0c666ce96a28e3f43ce7a8df5f08d4ff007723bb588d85674f2da
This commit is contained in:
commit
0936e2596b
5 changed files with 40 additions and 2 deletions
|
@ -1,3 +1,5 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
# Copyright (c) 2017 The Bitcoin Core developers
|
# Copyright (c) 2017 The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
|
@ -28,6 +28,8 @@ Developer Notes
|
||||||
- [Strings and formatting](#strings-and-formatting)
|
- [Strings and formatting](#strings-and-formatting)
|
||||||
- [Variable names](#variable-names)
|
- [Variable names](#variable-names)
|
||||||
- [Threads and synchronization](#threads-and-synchronization)
|
- [Threads and synchronization](#threads-and-synchronization)
|
||||||
|
- [Scripts](#scripts)
|
||||||
|
- [Shebang](#shebang)
|
||||||
- [Source code organization](#source-code-organization)
|
- [Source code organization](#source-code-organization)
|
||||||
- [GUI](#gui)
|
- [GUI](#gui)
|
||||||
- [Subtrees](#subtrees)
|
- [Subtrees](#subtrees)
|
||||||
|
@ -602,6 +604,31 @@ TRY_LOCK(cs_vNodes, lockNodes);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Scripts
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
### Shebang
|
||||||
|
|
||||||
|
- Use `#!/usr/bin/env bash` instead of obsolete `#!/bin/bash`.
|
||||||
|
|
||||||
|
- [*Rationale*](https://github.com/dylanaraps/pure-bash-bible#shebang):
|
||||||
|
|
||||||
|
`#!/bin/bash` assumes it is always installed to /bin/ which can cause issues;
|
||||||
|
|
||||||
|
`#!/usr/bin/env bash` searches the user's PATH to find the bash binary.
|
||||||
|
|
||||||
|
OK:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
```
|
||||||
|
|
||||||
|
Wrong:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
```
|
||||||
|
|
||||||
Source code organization
|
Source code organization
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
# Copyright (c) 2014-2015 The Bitcoin Core developers
|
# Copyright (c) 2014-2015 The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 The Bitcoin Core developers
|
# Copyright (c) 2018 The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Shebang must use python3 (not python or python2)
|
# Assert expected shebang lines
|
||||||
|
|
||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
EXIT_CODE=0
|
EXIT_CODE=0
|
||||||
|
@ -10,4 +10,11 @@ for PYTHON_FILE in $(git ls-files -- "*.py"); do
|
||||||
EXIT_CODE=1
|
EXIT_CODE=1
|
||||||
fi
|
fi
|
||||||
done
|
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}
|
exit ${EXIT_CODE}
|
Loading…
Add table
Reference in a new issue