diff --git a/dist/tools/ci/static_tests.sh b/dist/tools/ci/static_tests.sh index cfaccd69e4..bae2eaa36d 100755 --- a/dist/tools/ci/static_tests.sh +++ b/dist/tools/ci/static_tests.sh @@ -12,6 +12,31 @@ . $(dirname "$0")/github_annotate.sh +declare -A DEPS + +DEPS["./dist/tools/licenses/check.sh"]="head pcregrep" +DEPS["./dist/tools/doccheck/check.sh"]="doxygen tput" +DEPS["./dist/tools/cppcheck/check.sh"]="cppcheck" +DEPS["./dist/tools/vera++/check.sh"]="vera++" +DEPS["./dist/tools/coccinelle/check.sh"]="spatch" +DEPS["./dist/tools/flake8/check.sh"]="python3 flake8" +DEPS["./dist/tools/codespell/check.sh"]="codespell" +DEPS["./dist/tools/uncrustify/uncrustify.sh"]="uncrustify" + +if ! command -v git 2>&1 1>/dev/null; then + echo -n "Required command 'git' for all static tests not found in PATH " + print_warning + set_result 1 + exit 1 +fi + +function print_warning { + local YELLOW="\033[0;33m" + local NO_COLOUR="\033[0m" + + echo -e "${YELLOW}•${NO_COLOUR}" +} + function print_result { local RED="\033[0;31m" local GREEN="\033[0;32m" @@ -34,6 +59,15 @@ set_result() { } function run { + for dep in ${DEPS["$1"]}; do + if ! command -v ${dep} 2>&1 1>/dev/null; then + echo -n "Required command '${dep}' for '$*' not found in PATH " + print_warning + set_result 1 + return 1 + fi + done + echo -n "Running \"$*\" " OUT=$("$@" 2>&1) NEW_RESULT=$? diff --git a/dist/tools/static-tests.sh b/dist/tools/static-tests.sh deleted file mode 100755 index 14db3a24e1..0000000000 --- a/dist/tools/static-tests.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (C) 2015 Lucas Jenß -# -# This file is subject to the terms and conditions of the GNU Lesser -# General Public License v2.1. See the file LICENSE in the top level -# directory for more details. -# - -# Change to RIOT root -cd "$(dirname "$0")/../../" - -function dep { - command -v $1 2>&1 1>/dev/null - if (( $? != 0 )); then - echo "Dependency not met: $1" - exit 1 - fi -} - -# Make sure all required commands are available -dep cppcheck -dep pcregrep - -BUILDTEST_MCU_GROUP=static-tests ./dist/tools/ci/build_and_test.sh diff --git a/makefiles/tests.inc.mk b/makefiles/tests.inc.mk index fd5e492ce6..85269dd720 100644 --- a/makefiles/tests.inc.mk +++ b/makefiles/tests.inc.mk @@ -1,3 +1,3 @@ static-test: - ./dist/tools/static-tests.sh + ./dist/tools/ci/static_tests.sh