You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@yetus.apache.org by bu...@apache.org on 2016/10/29 02:14:53 UTC

yetus git commit: YETUS-461. Allow specifying exclusions for whitespace report

Repository: yetus
Updated Branches:
  refs/heads/master 938504b64 -> 9740b6401


YETUS-461. Allow specifying exclusions for whitespace report

Signed-off-by: Sean Busbey <bu...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/yetus/repo
Commit: http://git-wip-us.apache.org/repos/asf/yetus/commit/9740b640
Tree: http://git-wip-us.apache.org/repos/asf/yetus/tree/9740b640
Diff: http://git-wip-us.apache.org/repos/asf/yetus/diff/9740b640

Branch: refs/heads/master
Commit: 9740b6401945ef56ad568a73e650267a422838c3
Parents: 938504b
Author: Kengo Seki <se...@apache.org>
Authored: Thu Sep 22 23:49:51 2016 +0900
Committer: Sean Busbey <bu...@apache.org>
Committed: Fri Oct 28 21:07:14 2016 -0500

----------------------------------------------------------------------
 precommit/test-patch.d/whitespace.sh | 50 ++++++++++++++++++++++++++++---
 1 file changed, 46 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/yetus/blob/9740b640/precommit/test-patch.d/whitespace.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/whitespace.sh b/precommit/test-patch.d/whitespace.sh
index b7ac27a..390f15f 100755
--- a/precommit/test-patch.d/whitespace.sh
+++ b/precommit/test-patch.d/whitespace.sh
@@ -14,8 +14,41 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+WHITESPACE_EOL_IGNORE_LIST=
+WHITESPACE_TABS_IGNORE_LIST=Makefile
+
 add_test_type whitespace
 
+## @description  whitespace usage hook
+## @audience     private
+## @stability    evolving
+## @replaceable  no
+function whitespace_usage
+{
+  yetus_add_option "--whitespace-eol-ignore-list=<list>" "comma-separated regex list of filenames to ignore on checking whitespaces at EOL (default '${WHITESPACE_EOL_IGNORE_LIST}')"
+  yetus_add_option "--whitespace-tabs-ignore-list=<list>" "comma-separated regex list of filenames to ignore on checking tabs in a file (default '${WHITESPACE_TABS_IGNORE_LIST}')"
+}
+
+## @description  whitespace parse args hook
+## @audience     private
+## @stability    evolving
+## @replaceable  no
+function whitespace_parse_args
+{
+  declare i
+
+  for i in "$@"; do
+    case ${i} in
+      --whitespace-eol-ignore-list=*)
+        yetus_comma_to_array WHITESPACE_EOL_IGNORE_LIST "${i#*=}"
+      ;;
+      --whitespace-tabs-ignore-list=*)
+        yetus_comma_to_array WHITESPACE_TABS_IGNORE_LIST "${i#*=}"
+      ;;
+    esac
+  done
+}
+
 function whitespace_linecomment_reporter
 {
   declare file=$1
@@ -40,6 +73,8 @@ function whitespace_postcompile
   declare repostatus=$1
   declare count
   declare result=0
+  declare eolignore
+  declare tabsignore
 
   if [[ "${repostatus}" = branch ]]; then
     return 0
@@ -50,22 +85,29 @@ function whitespace_postcompile
 
   pushd "${BASEDIR}" >/dev/null
 
+  eolignore=$(printf -- "-e ^%s: " "${WHITESPACE_EOL_IGNORE_LIST[@]}")
+  tabsignore=$(printf -- "-e ^%s: " "${WHITESPACE_TABS_IGNORE_LIST[@]}")
+
   case "${BUILDMODE}" in
     patch)
-      # shellcheck disable=SC2016
+      # shellcheck disable=SC2016,SC2086
       ${AWK} '/\t/ {print $0}' \
           "${GITDIFFCONTENT}" \
-        | ${GREP} -v Makefile: >> "${PATCH_DIR}/whitespace-tabs.txt"
+        | ${GREP} -v ${tabsignore} >> "${PATCH_DIR}/whitespace-tabs.txt"
 
+      # shellcheck disable=SC2086
        ${GREP} -E '[[:blank:]]$' \
          "${GITDIFFCONTENT}" \
-          >> "${PATCH_DIR}/whitespace-eol.txt"
+        | ${GREP} -v ${eolignore} >> "${PATCH_DIR}/whitespace-eol.txt"
     ;;
     full)
+      # shellcheck disable=SC2086
       ${GIT} grep -n -I --extended-regexp '[[:blank:]]$' \
+        | "${GREP}" -v ${eolignore} \
          >> "${PATCH_DIR}/whitespace-eol.txt"
+      # shellcheck disable=SC2086
       ${GIT} grep -n -I $'\t' \
-        | "${GREP}" -v Makefile \
+        | "${GREP}" -v ${tabsignore} \
         >> "${PATCH_DIR}/whitespace-tabs.txt"
     ;;
   esac