From 735f4c294e319196bf034662f6ffecaad8fb4124 Mon Sep 17 00:00:00 2001 From: Filip Bucek Date: Tue, 5 Nov 2019 14:32:30 +0100 Subject: [PATCH] added cppcheck script --- .gitlab-ci.yml | 2 +- scripts/cppcheck.sh | 46 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100755 scripts/cppcheck.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index da7ff1e..485372a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,4 +48,4 @@ cppcheck: - shell # spaceti-runner server has running runners and one has tag 'hw' # allow_failure: true script: # run in bash - - cppcheck src --suppress=missingIncludeSystem --suppress=unusedFunction --enable=all -i build --error-exitcode=100 + - scripts/cppcheck.sh diff --git a/scripts/cppcheck.sh b/scripts/cppcheck.sh new file mode 100755 index 0000000..24dc755 --- /dev/null +++ b/scripts/cppcheck.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +# @see https://intoli.com/blog/exit-on-errors-in-bash-scripts/ +set -e + +trap 'LASTRES=$?; LAST=$BASH_COMMAND; if [[ LASTRES -ne 0 ]]; then fail "Command: \"$LAST\" exited with exit code: $LASTRES"; elif [ $FAIL == 1 ]; then fail finished with error; exit 1; else pass "finished all";fi' EXIT + +SRCDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +DIRNAME="${SRCDIR##*/}" + +exclude_dir=build +check_dir=$SRCDIR/../src + +main() { + FAIL=0; + RESULT=$(cppcheck $check_dir --quiet --suppress=missingIncludeSystem --suppress=unusedFunction --enable=all -i $exclude_dir 2>&1) + + if [ ! -z "$RESULT" ]; then + echo "$RESULT" + fail "Cppcheck finished with error" + fi +} + + +# ################ +# Output funcitons +# ################ +RED='\033[0;31m' +GREEN='\033[0;32m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +function info () { + echo -e "[${BLUE} $@ ${NC}]" +} + +function pass() { + echo -e "[${GREEN}PASS${NC}] $@" +} + +function fail() { + FAIL=1; echo -e "[${RED}FAIL${NC}] $@" +} + +# Run main function +main "$@"