From 52e1b59e60b6678024f916ed582d4d6fa2944347 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sat, 25 Aug 2018 12:04:12 -0400 Subject: [PATCH] cmake add nuttx shellcheck helper --- Jenkinsfile | 2 +- Makefile | 3 ++- ROMFS/CMakeLists.txt | 19 +++++++++++++++++++ ROMFS/px4fmu_common/init.d-posix/rcS | 3 ++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a4402087e9..8cb61c13d7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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' } } diff --git a/Makefile b/Makefile index 35c28712db..5f9c353d5a 100644 --- a/Makefile +++ b/Makefile @@ -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 # -------------------------------------------------------------------- diff --git a/ROMFS/CMakeLists.txt b/ROMFS/CMakeLists.txt index a8b6f99538..94cd9cf989 100644 --- a/ROMFS/CMakeLists.txt +++ b/ROMFS/CMakeLists.txt @@ -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() diff --git a/ROMFS/px4fmu_common/init.d-posix/rcS b/ROMFS/px4fmu_common/init.d-posix/rcS index e460c4019f..731167b446 100644 --- a/ROMFS/px4fmu_common/init.d-posix/rcS +++ b/ROMFS/px4fmu_common/init.d-posix/rcS @@ -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'"