xrdp/scripts/run_cppcheck.sh
a1346054 2857c39d0a fix some shellcheck warnings
(cherry picked from commit 59f8d9fe07)
2022-09-11 10:48:17 +09:00

59 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
# Script to run cppcheck
#
# Usage: /path/to/run_cppcheck.sh [ -v CPPCHECK_VER] [<extra_opts_and_dirs>]
#
# - If <extra_opts_and_dirs> is missing, '.' is assumed
# - If -v CPPCHECK_VER is specified, that version of cppcheck is run from
# ~/cppcheck.local (whether or not it's there!). Use install_cppcheck.sh
# to install a new version.
#
# Environment (all optional):-
#
# CPPCHECK : Override the default cppcheck command ('cppcheck').
# Ignored if -v is specified
# CPPCHECK_FLAGS : Override the default cppcheck flags
INSTALL_ROOT=~/cppcheck.local
# Figure out CPPCHECK setting, if any. Currently '-v' must be the first
# argument on the command line.
case "$1" in
-v) # Version is separate parameter
if [ $# -ge 2 ]; then
CPPCHECK="$INSTALL_ROOT/$2/bin/cppcheck"
shift 2
else
echo "** ignoring '-v' with no arg" >&2
shift 1
fi
;;
-v*) # Version is in same parameter
# ${parameter#word} is not supported by classic Bourne shell,
# but it is on bash, dash, etc. If it doesn't work on your shell,
# don't use this form!
CPPCHECK="$INSTALL_ROOT/${1#-v}/bin/cppcheck"
shift 1
esac
if [ -z "$CPPCHECK" ]; then
CPPCHECK=cppcheck
fi
# Supply default flags passed to cppcheck if necessary
if [ -z "$CPPCHECK_FLAGS" ]; then
CPPCHECK_FLAGS="--quiet --force --std=c11 --std=c++11 --inline-suppr \
--enable=warning --error-exitcode=1"
fi
# Any options/directories specified?
if [ $# -eq 0 ]; then
set -- -j 2 .
fi
# Display the cppcheck version and command for debugging
"$CPPCHECK" --version && {
echo "Command: $CPPCHECK $CPPCHECK_FLAGS" "$@"
"$CPPCHECK" $CPPCHECK_FLAGS "$@"
}