dash/contrib/devtools/lint-shell.sh
MarcoFalke a859ea12a9 Merge #13851: fix locale for lint-shell
83c48d9a1f fix locale for lint-shell (Julian Fleischer)

Pull request description:

  A piece of code from https://github.com/bitcoin/bitcoin/pull/13816 which I am hereby splitting into smaller PRs.

  The `shellcheck` executable shipped with travis's trusty linux environment (contains shellcheck `0.3.1` in `/usr/local/bin` as opposed to the distros `0.3.3` in `/usr/bin`) segfaults when `LC_ALL=C`.

  This makes sure that in travis, no matter from where the script is called, `LC_ALL` is left unset. Comment changed accordingly.

Tree-SHA512: 86afa9247f2adbeefa75bf3d56a94766f8e8e1839f40b73763ff7b893a09c848ee64648fc06ce3e6bd0f650127365f508b37fdefb48d61e49f5d551c074cb16e
2020-07-28 21:35:31 -05:00

38 lines
1.8 KiB
Bash
Executable File

#!/bin/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
# Disabled warnings:
# 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 $?.
shellcheck -e SC2001,SC2004,SC2005,SC2006,SC2016,SC2028,SC2046,SC2048,SC2066,SC2086,SC2116,SC2148,SC2162,SC2166,SC2181 \
$(git ls-files -- "*.sh" | grep -vE 'src/(secp256k1|univalue)/')