From b1dcb10f25862d7d833d91518a007b618236ad64 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 5 Jan 2015 23:16:30 -0500 Subject: [PATCH 1/6] add make check_format to check astyle code formatting --- .gitignore | 2 ++ Makefile | 4 ++++ Tools/check_code_style.sh | 28 ++++++++++++++++++++++++++++ Tools/fix_code_style.sh | 1 + 4 files changed, 35 insertions(+) create mode 100755 Tools/check_code_style.sh diff --git a/.gitignore b/.gitignore index 611325444e..0e553fa365 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,5 @@ Firmware.zip unittests/build *.generated.h .vagrant +*.pretty + diff --git a/Makefile b/Makefile index 7620099f98..201187e021 100644 --- a/Makefile +++ b/Makefile @@ -262,6 +262,10 @@ testbuild: tests: generateuorbtopicheaders $(Q) (mkdir -p $(PX4_BASE)/unittests/build && cd $(PX4_BASE)/unittests/build && cmake .. && $(MAKE) unittests) +.PHONY: format check_format +check_format: + $(Q) (./Tools/check_code_style.sh | sort -n) + # # Cleanup targets. 'clean' should remove all built products and force # a complete re-compilation, 'distclean' should remove everything diff --git a/Tools/check_code_style.sh b/Tools/check_code_style.sh new file mode 100755 index 0000000000..491fbb0ce2 --- /dev/null +++ b/Tools/check_code_style.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +set -eu +failed=0 +for fn in $(find . -path './src/lib/uavcan' -prune -o \ + -path './NuttX' -prune -o \ + -path './Build' -prune -o \ + -path './mavlink' -prune -o \ + -path './unittests/gtest' -prune -o \ + -name '*.c' -o -name '*.cpp' -o -name '*.hpp' -o -name '*.h' -type f); do + if [ -f "$fn" ]; + then + ./Tools/fix_code_style.sh --quiet < $fn > $fn.pretty + diffsize=$(diff -y --suppress-common-lines $fn $fn.pretty | wc -l) + rm -f $fn.pretty + if [ $diffsize -ne 0 ]; then + failed=1 + echo $diffsize $fn + fi + fi +done + +if [ $failed -eq 0 ]; then + echo "Format checks passed" + exit 0 +else + echo "Format checks failed; please run ./Tools/fix_code_style.sh on each file" + exit 1 +fi diff --git a/Tools/fix_code_style.sh b/Tools/fix_code_style.sh index 5995d428ea..e73a5a8af2 100755 --- a/Tools/fix_code_style.sh +++ b/Tools/fix_code_style.sh @@ -18,4 +18,5 @@ astyle \ --exclude=EASTL \ --add-brackets \ --max-code-length=120 \ + --preserve-date \ $* From 92a3b9ce1fad65f6c0b941b7c77c6b286f547ede Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Wed, 7 Jan 2015 23:01:02 -0500 Subject: [PATCH 2/6] add astyle pre-commit git hook --- Tools/pre-commit | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 Tools/pre-commit diff --git a/Tools/pre-commit b/Tools/pre-commit new file mode 100755 index 0000000000..db5863d3eb --- /dev/null +++ b/Tools/pre-commit @@ -0,0 +1,29 @@ +#!/bin/sh +echo "hello world" + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 +fi + +# Redirect output to stderr. +exec 1>&2 + +CHANGED_FILES=`git diff --cached --name-only --diff-filter=ACM $against | grep '\.c\|\.cpp\|\.h\|\.hpp'` +FAILED=0 +if [ ! -z "$CHANGED_FILES" -a "$CHANGED_FILES" != " " ]; then + echo $CHANGED_FILES + for FILE in $CHANGED_FILES; do + ./Tools/fix_code_style.sh --quiet < $FILE > $FILE.pretty + diff -u $FILE $FILE.pretty || FAILED=1 + rm -f $FILE.pretty + if [ $FAILED -ne 0 ]; then + echo "There are code formatting errors. Please fix them by running ./Tools/fix_code_style.sh $FILE" + exit $FAILED + fi + done +fi +exit 0 From b5a2c8708ceea21bdea0c61f6999b5b3272d3f09 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sun, 22 Feb 2015 17:41:02 -0500 Subject: [PATCH 3/6] check_code_style.sh ignore unittests/build directory --- Tools/check_code_style.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Tools/check_code_style.sh b/Tools/check_code_style.sh index 491fbb0ce2..df6afced45 100755 --- a/Tools/check_code_style.sh +++ b/Tools/check_code_style.sh @@ -6,6 +6,7 @@ for fn in $(find . -path './src/lib/uavcan' -prune -o \ -path './Build' -prune -o \ -path './mavlink' -prune -o \ -path './unittests/gtest' -prune -o \ + -path './unittests/build' -prune -o \ -name '*.c' -o -name '*.cpp' -o -name '*.hpp' -o -name '*.h' -type f); do if [ -f "$fn" ]; then From b2082c124aed3f6e90b4925e98dfadf877b1636e Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sun, 22 Feb 2015 17:50:55 -0500 Subject: [PATCH 4/6] git pre-commit hook don't echo files changed --- Tools/pre-commit | 3 --- 1 file changed, 3 deletions(-) diff --git a/Tools/pre-commit b/Tools/pre-commit index db5863d3eb..13cd4aaddb 100755 --- a/Tools/pre-commit +++ b/Tools/pre-commit @@ -1,6 +1,4 @@ #!/bin/sh -echo "hello world" - if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD @@ -15,7 +13,6 @@ exec 1>&2 CHANGED_FILES=`git diff --cached --name-only --diff-filter=ACM $against | grep '\.c\|\.cpp\|\.h\|\.hpp'` FAILED=0 if [ ! -z "$CHANGED_FILES" -a "$CHANGED_FILES" != " " ]; then - echo $CHANGED_FILES for FILE in $CHANGED_FILES; do ./Tools/fix_code_style.sh --quiet < $FILE > $FILE.pretty diff -u $FILE $FILE.pretty || FAILED=1 From 8de2b8af146826ff0495f495ffef509a988f85f8 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sun, 22 Feb 2015 18:55:05 -0500 Subject: [PATCH 5/6] check_code_style.sh ignore mathlib/CMSIS --- Tools/check_code_style.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Tools/check_code_style.sh b/Tools/check_code_style.sh index df6afced45..387aab92bf 100755 --- a/Tools/check_code_style.sh +++ b/Tools/check_code_style.sh @@ -2,6 +2,7 @@ set -eu failed=0 for fn in $(find . -path './src/lib/uavcan' -prune -o \ + -path './src/lib/mathlib/CMSIS' -prune -o \ -path './NuttX' -prune -o \ -path './Build' -prune -o \ -path './mavlink' -prune -o \ From 265147ce7f64d40124c615623afdde86fb2bb8f9 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 23 Feb 2015 13:10:12 -0500 Subject: [PATCH 6/6] make check_format ignore src/modules/attitude_estimator_ekf/codegen --- Tools/check_code_style.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Tools/check_code_style.sh b/Tools/check_code_style.sh index 387aab92bf..8d1ab6363b 100755 --- a/Tools/check_code_style.sh +++ b/Tools/check_code_style.sh @@ -3,6 +3,7 @@ set -eu failed=0 for fn in $(find . -path './src/lib/uavcan' -prune -o \ -path './src/lib/mathlib/CMSIS' -prune -o \ + -path './src/modules/attitude_estimator_ekf/codegen/' -prune -o \ -path './NuttX' -prune -o \ -path './Build' -prune -o \ -path './mavlink' -prune -o \