cmake add nuttx shellcheck helper

This commit is contained in:
Daniel Agar 2018-08-25 12:04:12 -04:00 committed by Lorenz Meier
parent 096c41b041
commit 52e1b59e60
4 changed files with 24 additions and 3 deletions

2
Jenkinsfile vendored
View File

@ -163,7 +163,7 @@ pipeline {
stage('ShellCheck') {
agent {
docker {
image 'px4io/px4-dev-base:2018-08-23'
image 'px4io/px4-dev-nuttx:2018-08-23'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}

View File

@ -325,7 +325,7 @@ python_coverage:
# static analyzers (scan-build, clang-tidy, cppcheck)
# --------------------------------------------------------------------
.PHONY: scan-build posix_sitl_default-clang clang-tidy clang-tidy-fix clang-tidy-quiet cppcheck
.PHONY: scan-build posix_sitl_default-clang clang-tidy clang-tidy-fix clang-tidy-quiet cppcheck shellcheck
scan-build:
@export CCC_CC=clang
@ -362,6 +362,7 @@ cppcheck: posix_sitl_default
shellcheck:
@$(SRC_DIR)/Tools/run-shellcheck.sh $(SRC_DIR)/ROMFS/px4fmu_common/
@make px4fmu-v2_default shellcheck
# Cleanup
# --------------------------------------------------------------------

View File

@ -144,3 +144,22 @@ add_custom_command(OUTPUT nsh_romfsimg.c
add_library(romfs STATIC nsh_romfsimg.c)
add_dependencies(romfs prebuild_targets)
set_target_properties(romfs PROPERTIES LINKER_LANGUAGE C)
# shellcheck
find_program(SHELLCHECK_PATH shellcheck)
if(SHELLCHECK_PATH)
# TODO: fix SC2039, SC2086, SC2166
add_custom_target(shellcheck
COMMAND ${SHELLCHECK_PATH} --shell=sh
--exclude=SC2121 # SC2121: To assign a variable, use just 'var=value'
--exclude=SC2086 # SC2086: Double quote to prevent globbing and word splitting.
--exclude=SC2039 # SC2039: In POSIX sh, == in place of = is undefined.
--exclude=SC2166 # SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.
init.d/*
DEPENDS ${romfs_gen_root_dir}/init.d/rc.autostart
WORKING_DIRECTORY ${romfs_gen_root_dir}
USES_TERMINAL
)
endif()

View File

@ -40,7 +40,8 @@ if [ "$PX4_SIM_MODEL" = "shell" ]; then
set RUN_MINIMAL_SHELL yes
else
# Find the matching Autostart ID (file name has the form: [0-9]+_${PX4_SIM_MODEL})
# shellcheck disable=SC2012 #(the file names don't contain spaces)
# TODO: unify with rc.autostart generation
# shellcheck disable=SC2012
REQUESTED_AUTOSTART=$(ls "$SCRIPT_DIR" | sed -n 's/^\([0-9][0-9]*\)_'${PX4_SIM_MODEL}'$/\1/p')
if [ -z "$REQUESTED_AUTOSTART" ]; then
echo "Error: Unknown model '$PX4_SIM_MODEL'"