From 4b15f76ed163b1e0b95b50017bd39e73400601b4 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Thu, 6 Apr 2017 09:10:59 +0200 Subject: Move LINT process in dedicated shell & fix Move lint to dedicated shell permit to use it from your shell easily to check what is wrong Also fix recent regressions in code style --- util/travis/lint.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 util/travis/lint.sh (limited to 'util/travis/lint.sh') diff --git a/util/travis/lint.sh b/util/travis/lint.sh new file mode 100644 index 000000000..96026b247 --- /dev/null +++ b/util/travis/lint.sh @@ -0,0 +1,46 @@ +#! /bin/bash +function perform_lint() { + echo "Performing LINT..." + CLANG_FORMAT=clang-format + CLANG_FORMAT_WHITELIST="util/travis/clang-format-whitelist.txt" + + if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then + # Get list of every file modified in this pull request + files_to_lint="$(git diff --name-only --diff-filter=ACMRTUXB $TRAVIS_COMMIT_RANGE | grep '^src/[^.]*[.]\(cpp\|h\)$' | true)" + else + # Check everything for branch pushes + files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')" + fi + + local errorcount=0 + local fail=0 + for f in ${files_to_lint}; do + d=$(diff -u "$f" <(${CLANG_FORMAT} "$f") || true) + + if ! [ -z "$d" ]; then + whitelisted=$(egrep -c "^${f}" "${CLANG_FORMAT_WHITELIST}") + + # If file is not whitelisted, mark a failure + if [ ${whitelisted} -eq 0 ]; then + errorcount=$((errorcount+1)) + + printf "The file %s is not compliant with the coding style" "$f" + if [ ${errorcount} -gt 50 ]; then + printf "\nToo many errors encountered previously, this diff is hidden.\n" + else + printf ":\n%s\n" "$d" + fi + + fail=1 + fi + fi + done + + if [ "$fail" = 1 ]; then + echo "LINT reports failure." + exit 1 + fi + + echo "LINT OK" +} + -- cgit v1.2.3 From 48ce9c9b307ef340d21ecf00d623ac69cb841e09 Mon Sep 17 00:00:00 2001 From: Loïc Blot Date: Thu, 6 Apr 2017 10:01:09 +0200 Subject: Fix clang-format binary selection Also fix spaces to tabs --- util/travis/lint.sh | 88 ++++++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 42 deletions(-) (limited to 'util/travis/lint.sh') diff --git a/util/travis/lint.sh b/util/travis/lint.sh index 96026b247..c1df2d5fa 100644 --- a/util/travis/lint.sh +++ b/util/travis/lint.sh @@ -1,46 +1,50 @@ #! /bin/bash function perform_lint() { - echo "Performing LINT..." - CLANG_FORMAT=clang-format - CLANG_FORMAT_WHITELIST="util/travis/clang-format-whitelist.txt" - - if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then - # Get list of every file modified in this pull request - files_to_lint="$(git diff --name-only --diff-filter=ACMRTUXB $TRAVIS_COMMIT_RANGE | grep '^src/[^.]*[.]\(cpp\|h\)$' | true)" - else - # Check everything for branch pushes - files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')" - fi - - local errorcount=0 - local fail=0 - for f in ${files_to_lint}; do - d=$(diff -u "$f" <(${CLANG_FORMAT} "$f") || true) - - if ! [ -z "$d" ]; then - whitelisted=$(egrep -c "^${f}" "${CLANG_FORMAT_WHITELIST}") - - # If file is not whitelisted, mark a failure - if [ ${whitelisted} -eq 0 ]; then - errorcount=$((errorcount+1)) - - printf "The file %s is not compliant with the coding style" "$f" - if [ ${errorcount} -gt 50 ]; then - printf "\nToo many errors encountered previously, this diff is hidden.\n" - else - printf ":\n%s\n" "$d" - fi - - fail=1 - fi - fi - done - - if [ "$fail" = 1 ]; then - echo "LINT reports failure." - exit 1 - fi - - echo "LINT OK" + echo "Performing LINT..." + if hash clang-format-3.9 2>/dev/null; then + CLANG_FORMAT=clang-format-3.9 + else + CLANG_FORMAT=clang-format + fi + CLANG_FORMAT_WHITELIST="util/travis/clang-format-whitelist.txt" + + if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then + # Get list of every file modified in this pull request + files_to_lint="$(git diff --name-only --diff-filter=ACMRTUXB $TRAVIS_COMMIT_RANGE | grep '^src/[^.]*[.]\(cpp\|h\)$' | true)" + else + # Check everything for branch pushes + files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')" + fi + + local errorcount=0 + local fail=0 + for f in ${files_to_lint}; do + d=$(diff -u "$f" <(${CLANG_FORMAT} "$f") || true) + + if ! [ -z "$d" ]; then + whitelisted=$(egrep -c "^${f}" "${CLANG_FORMAT_WHITELIST}") + + # If file is not whitelisted, mark a failure + if [ ${whitelisted} -eq 0 ]; then + errorcount=$((errorcount+1)) + + printf "The file %s is not compliant with the coding style" "$f" + if [ ${errorcount} -gt 50 ]; then + printf "\nToo many errors encountered previously, this diff is hidden.\n" + else + printf ":\n%s\n" "$d" + fi + + fail=1 + fi + fi + done + + if [ "$fail" = 1 ]; then + echo "LINT reports failure." + exit 1 + fi + + echo "LINT OK" } -- cgit v1.2.3 From 3a90b78a037df3eb9098d4fddb1289ed8ee21329 Mon Sep 17 00:00:00 2001 From: Loïc Blot Date: Thu, 6 Apr 2017 16:03:29 +0200 Subject: LINT: Switch whitelist check from egrep to awk Bonus: make CI happy with the last rules fix --- src/client/keys.h | 3 ++- src/environment.cpp | 1 + src/gameparams.h | 3 ++- src/gettime.h | 3 ++- src/script/lua_api/l_client.cpp | 4 ++-- util/travis/lint.sh | 5 +++-- 6 files changed, 12 insertions(+), 7 deletions(-) (limited to 'util/travis/lint.sh') diff --git a/src/client/keys.h b/src/client/keys.h index b446d3a1e..76ae38ff0 100644 --- a/src/client/keys.h +++ b/src/client/keys.h @@ -25,7 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc., class KeyType { public: - enum T { + enum T + { // Player movement FORWARD, BACKWARD, diff --git a/src/environment.cpp b/src/environment.cpp index d1ea5f8bb..9c2ea8896 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "daynightratio.h" #include "emerge.h" + Environment::Environment(IGameDef *gamedef): m_time_of_day_speed(0), m_time_of_day(9000), diff --git a/src/gameparams.h b/src/gameparams.h index bf9953c39..4afc0fdce 100644 --- a/src/gameparams.h +++ b/src/gameparams.h @@ -24,7 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc., struct SubgameSpec; -struct GameParams { +struct GameParams +{ u16 socket_port; std::string world_path; SubgameSpec game_spec; diff --git a/src/gettime.h b/src/gettime.h index 6e70b8533..b2f09a7bb 100644 --- a/src/gettime.h +++ b/src/gettime.h @@ -31,7 +31,8 @@ with this program; if not, write to the Free Software Foundation, Inc., Normal build: main.cpp Server build: servermain.cpp */ -enum TimePrecision { +enum TimePrecision +{ PRECISION_SECONDS = 0, PRECISION_MILLI, PRECISION_MICRO, diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp index 0f4d7eaae..be3a749de 100644 --- a/src/script/lua_api/l_client.cpp +++ b/src/script/lua_api/l_client.cpp @@ -212,8 +212,8 @@ int ModApiClient::l_sound_play(lua_State *L) if (!lua_isnil(L, -1)) { v3f pos = read_v3f(L, -1) * BS; lua_pop(L, 1); - handle = - sound->playSoundAt(spec.name, looped, gain * spec.gain, pos); + handle = sound->playSoundAt( + spec.name, looped, gain * spec.gain, pos); lua_pushinteger(L, handle); return 1; } diff --git a/util/travis/lint.sh b/util/travis/lint.sh index c1df2d5fa..4e816bd94 100644 --- a/util/travis/lint.sh +++ b/util/travis/lint.sh @@ -6,6 +6,7 @@ function perform_lint() { else CLANG_FORMAT=clang-format fi + echo "LINT: Using binary $CLANG_FORMAT" CLANG_FORMAT_WHITELIST="util/travis/clang-format-whitelist.txt" if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then @@ -22,10 +23,10 @@ function perform_lint() { d=$(diff -u "$f" <(${CLANG_FORMAT} "$f") || true) if ! [ -z "$d" ]; then - whitelisted=$(egrep -c "^${f}" "${CLANG_FORMAT_WHITELIST}") + whitelisted=$(awk '$1 == "'$f'" { print 1 }' "$CLANG_FORMAT_WHITELIST") # If file is not whitelisted, mark a failure - if [ ${whitelisted} -eq 0 ]; then + if [ -z ${whitelisted} ]; then errorcount=$((errorcount+1)) printf "The file %s is not compliant with the coding style" "$f" -- cgit v1.2.3 From 05309229b847ea4f289328890176d22c4655348b Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Mon, 22 May 2017 07:28:35 +0200 Subject: LINT fix & check all files with clang-format Seems the diff mode doesn't work well, PR are detected as working whereas in master it's shown it's problematic (and really problematic). Use same check everywhere --- src/script/lua_api/l_client.cpp | 2 +- util/travis/lint.sh | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) (limited to 'util/travis/lint.sh') diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp index 0b7450af2..3c2955bcd 100644 --- a/src/script/lua_api/l_client.cpp +++ b/src/script/lua_api/l_client.cpp @@ -88,7 +88,7 @@ int ModApiClient::l_display_chat_message(lua_State *L) // send_chat_message(message) int ModApiClient::l_send_chat_message(lua_State *L) { - if (!lua_isstring(L,1)) + if (!lua_isstring(L, 1)) return 0; std::string message = luaL_checkstring(L, 1); getClient(L)->sendChatMessage(utf8_to_wide(message)); diff --git a/util/travis/lint.sh b/util/travis/lint.sh index 4e816bd94..cd5f41779 100644 --- a/util/travis/lint.sh +++ b/util/travis/lint.sh @@ -9,13 +9,7 @@ function perform_lint() { echo "LINT: Using binary $CLANG_FORMAT" CLANG_FORMAT_WHITELIST="util/travis/clang-format-whitelist.txt" - if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then - # Get list of every file modified in this pull request - files_to_lint="$(git diff --name-only --diff-filter=ACMRTUXB $TRAVIS_COMMIT_RANGE | grep '^src/[^.]*[.]\(cpp\|h\)$' | true)" - else - # Check everything for branch pushes - files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')" - fi + files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')" local errorcount=0 local fail=0 -- cgit v1.2.3