VPP-540 : pbb tag rewrite details
[vpp.git] / build-root / scripts / checkstyle.sh
index 44534d4..6012967 100755 (executable)
@@ -3,14 +3,29 @@
 VPP_DIR=`dirname $0`/../../
 EXIT_CODE=0
 FIX="0"
+FULL="0"
 CHECKSTYLED_FILES=""
 UNCHECKSTYLED_FILES=""
 
 # If the user provides --fix, then actually fix things
 # Note: this is meant for use outside of the CI Jobs, by users cleaning things up
 
-if [ $# -gt 0 ] && [ ${1} == '--fix' ]; then
-    FIX="1"
+while true; do
+       case ${1} in
+               --fix)
+                       FIX="1"
+                       ;;
+               --full)
+                       FULL="1"
+                       ;;
+       esac
+       shift || break
+done
+
+if [ "${FULL}" == "1" ]; then
+       FILELIST=$(git ls-tree -r HEAD --name-only)
+else
+       FILELIST=$((git diff HEAD~1.. --name-only; git ls-files -m ) | sort -u)
 fi
 
 # Check to make sure we have indent.  Exit if we don't with an error message, but
@@ -24,7 +39,7 @@ indent --version
 
 cd ${VPP_DIR}
 git status
-for i in `git ls-tree -r HEAD --name-only`;do
+for i in ${FILELIST}; do
     if [ -f ${i} ] && [ ${i} != "build-root/scripts/checkstyle.sh" ] && [ ${i} != "build-root/emacs-lisp/fix-coding-style.el" ]; then
         grep -q "fd.io coding-style-patch-verification: ON" ${i}
         if [ $? == 0 ]; then
@@ -32,10 +47,14 @@ for i in `git ls-tree -r HEAD --name-only`;do
             if [ ${FIX} == 0 ]; then
                 indent ${i} -o ${i}.out1 > /dev/null 2>&1
                 indent ${i}.out1 -o ${i}.out2 > /dev/null 2>&1
+               # Remove trailing whitespace
+               sed -i -e 's/[[:space:]]*$//' ${i}.out2
                 diff -q ${i} ${i}.out2
             else
                 indent ${i}
                 indent ${i}
+               # Remove trailing whitespace
+               sed -i -e 's/[[:space:]]*$//' ${i}
             fi
             if [ $? != 0 ]; then
                 EXIT_CODE=1