3 changed files with 64 additions and 1 deletions
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash |
||||
# |
||||
# Copyright (c) 2017-2019 The Bitcoin Core developers |
||||
# Distributed under the MIT software license, see the accompanying |
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. |
||||
# |
||||
# This script runs all contrib/devtools/lint-* files, and fails if any exit |
||||
# with a non-zero status code. |
||||
|
||||
# This script is intentionally locale dependent by not setting "export LC_ALL=C" |
||||
# in order to allow for the executed lint scripts to opt in or opt out of locale |
||||
# dependence themselves. |
||||
|
||||
set -u |
||||
|
||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") |
||||
LINTALL=$(basename "${BASH_SOURCE[0]}") |
||||
|
||||
EXIT_CODE=0 |
||||
|
||||
for f in "${SCRIPTDIR}"/lint-*; do |
||||
if [ "$(basename "$f")" != "$LINTALL" ]; then |
||||
if ! "$f"; then |
||||
echo "^---- failure generated from $f" |
||||
EXIT_CODE=1 |
||||
fi |
||||
fi |
||||
done |
||||
|
||||
exit ${EXIT_CODE} |
||||
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash |
||||
# |
||||
# Copyright (c) 2018-2021 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 |
||||
|
||||
# Disabled warnings: |
||||
disabled=( |
||||
) |
||||
|
||||
EXIT_CODE=0 |
||||
|
||||
if ! command -v shellcheck > /dev/null; then |
||||
echo "Skipping shell linting since shellcheck is not installed." |
||||
exit $EXIT_CODE |
||||
fi |
||||
|
||||
SHELLCHECK_CMD=(shellcheck --external-sources --check-sourced --source-path=SCRIPTDIR) |
||||
EXCLUDE="--exclude=$(IFS=','; echo "${disabled[*]}")" |
||||
# Check shellcheck directive used for sourced files |
||||
mapfile -t SOURCED_FILES < <(git ls-files | xargs gawk '/^# shellcheck shell=/ {print FILENAME} {nextfile}') |
||||
mapfile -t GUIX_FILES < <(git ls-files contrib/guix contrib/shell | xargs gawk '/^#!\/usr\/bin\/env bash/ {print FILENAME} {nextfile}') |
||||
mapfile -t FILES < <(git ls-files -- '*.sh' | grep -vE 'src/(leveldb|secp256k1|minisketch|univalue)/') |
||||
if ! "${SHELLCHECK_CMD[@]}" "$EXCLUDE" "${SOURCED_FILES[@]}" "${GUIX_FILES[@]}" "${FILES[@]}"; then |
||||
EXIT_CODE=1 |
||||
fi |
||||
|
||||
exit $EXIT_CODE |
||||
Loading…
Reference in new issue