mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
a54f338783
cbd9091ed5a76bb2e1e57cd0d8db035c15529341 refactor/lint: Add ignored suggestions to an array (Vidar Holen) Pull request description: By adding excluded shellcheck suggestions to an array, you can avoid the current duplication between command and comments. This ensures that they never go out of sync, makes it easier to add new ones, and improves the readability of related diffs. Tree-SHA512: 04afced1d27fda940cc5e61d7f9ed04507c8f7f7dfd0031c09898a599c6de93695923a80cb3d515a0f0bf728847592d8680c15ac2e376b48726c03ca744f13a5
51 lines
2.4 KiB
Bash
Executable File
51 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
#
|
|
# Check for shellcheck warnings in shell scripts.
|
|
|
|
export LC_ALL=C
|
|
|
|
# The shellcheck binary segfault/coredumps in Travis with LC_ALL=C
|
|
# It does not do so in Ubuntu 14.04, 16.04, 18.04 in versions 0.3.3, 0.3.7, 0.4.6
|
|
# respectively. So export LC_ALL=C is set as required by lint-shell-locale.sh
|
|
# but unset here in case of running in Travis.
|
|
if [ "$TRAVIS" = "true" ]; then
|
|
unset LC_ALL
|
|
fi
|
|
|
|
if ! command -v shellcheck > /dev/null; then
|
|
echo "Skipping shell linting since shellcheck is not installed."
|
|
exit 0
|
|
fi
|
|
|
|
# Disabled warnings:
|
|
disabled=(
|
|
SC1087 # Use braces when expanding arrays, e.g. ${array[idx]} (or ${var}[.. to quiet).
|
|
SC1117 # Backslash is literal in "\.". Prefer explicit escaping: "\\.".
|
|
SC2001 # See if you can use ${variable//search/replace} instead.
|
|
SC2004 # $/${} is unnecessary on arithmetic variables.
|
|
SC2005 # Useless echo? Instead of 'echo $(cmd)', just use 'cmd'.
|
|
SC2006 # Use $(..) instead of legacy `..`.
|
|
SC2016 # Expressions don't expand in single quotes, use double quotes for that.
|
|
SC2028 # echo won't expand escape sequences. Consider printf.
|
|
SC2046 # Quote this to prevent word splitting.
|
|
SC2048 # Use "$@" (with quotes) to prevent whitespace problems.
|
|
SC2066 # Since you double quoted this, it will not word split, and the loop will only run once.
|
|
SC2086 # Double quote to prevent globbing and word splitting.
|
|
SC2116 # Useless echo? Instead of 'cmd $(echo foo)', just use 'cmd foo'.
|
|
SC2148 # Tips depend on target shell and yours is unknown. Add a shebang.
|
|
SC2162 # read without -r will mangle backslashes.
|
|
SC2166 # Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
|
|
SC2166 # Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.
|
|
SC2181 # Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.
|
|
SC2206 # Quote to prevent word splitting, or split robustly with mapfile or read -a.
|
|
SC2207 # Prefer mapfile or read -a to split command output (or quote to avoid splitting).
|
|
SC2230 # which is non-standard. Use builtin 'command -v' instead.
|
|
SC2236 # Don't force -n instead of ! -z.
|
|
)
|
|
shellcheck -e "$(IFS=","; echo "${disabled[*]}")" \
|
|
$(git ls-files -- "*.sh" | grep -vE 'src/(secp256k1|univalue)/')
|