More efficient format checker (#1571)
author오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Thu, 7 Jun 2018 01:10:52 +0000 (10:10 +0900)
committer서상민/동작제어Lab(SR)/Staff Engineer/삼성전자 <sangmin7.seo@samsung.com>
Thu, 7 Jun 2018 01:10:52 +0000 (10:10 +0900)
To reduce runtime by generating file list,
change current path using pushd/popd to subdirectories to check,
and generate file list

Signed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
scripts/command/format-checker.sh

index f51c8e1..bccf91e 100755 (executable)
@@ -22,40 +22,28 @@ function check_cpp_files() {
     DIRECTORIES_TO_BE_TESTED=$1
 
     # Check c++ files
-    CPP_FILES_IN_COMPILER=$(find "${DIRECTORIES_TO_BE_TESTED[@]}" -iname '*.h' -o -iname '*.cpp' -o -iname '*.cc')
-
-    if [[ ${#CPP_FILES_IN_COMPILER} -eq 0 ]]; then
-        echo "No cpp files to be checked"
-        return
-    fi
-
-    CPP_FILES_TO_BE_TESTED=$(git ls-files $CPP_FILES_IN_COMPILER)
-    if [[ ${#CPP_FILES_TO_BE_TESTED} -eq 0 ]]; then
-        echo "No changed cpp files to be checked"
-        return
-    fi
-
-    clang-format-3.9 -i $CPP_FILES_TO_BE_TESTED
+    for TEST_DIR in ${DIRECTORIES_TO_BE_TESTED[@]}; do
+        pushd $TEST_DIR
+            CPP_FILES_TO_CHECK=$(git ls-files '*.h' '*.cpp' '*.cc')
+            if [[ ${#CPP_FILES_TO_CHECK} -ne 0 ]]; then
+                clang-format-3.9 -i $CPP_FILES_TO_CHECK
+            fi
+        popd
+    done
 }
 
 function check_python_files() {
     DIRECTORIES_TO_BE_TESTED=$1
 
     # Check python files
-    PYTHON_FILES_IN_COMPILER=$(find "${DIRECTORIES_TO_BE_TESTED[@]}" -iname '*.py')
-
-    if [[ ${#PYTHON_FILES_IN_COMPILER} -eq 0 ]]; then
-        echo "No python files to be checked"
-        return
-    fi
-
-    PYTHON_FILES_TO_BE_TESTED=$(git ls-files $PYTHON_FILES_IN_COMPILER)
-    if [[ ${#PYTHON_FILES_TO_BE_TESTED} -eq 0 ]]; then
-        echo "No changed python files to be checked"
-        return
-    fi
-
-    yapf -i --style='{based_on_style: pep8, column_limit: 90}' $PYTHON_FILES_TO_BE_TESTED
+    for TEST_DIR in ${DIRECTORIES_TO_BE_TESTED[@]}; do
+        pushd $TEST_DIR
+            PYTHON_FILES_TO_CHECK=$(git ls-files '*.py')
+            if [[ ${#PYTHON_FILES_TO_CHECK} -ne 0 ]]; then
+                yapf -i --style='{based_on_style: pep8, column_limit: 90}' $PYTHON_FILES_TO_CHECK
+            fi
+        popd
+    done
 }
 
 echo "Make sure commit all changes before running this checker."