소스 검색

[tools] Add lint-checker git pre-commit hook

Jenny Kim 9 년 전
부모
커밋
848cac6
1개의 변경된 파일41개의 추가작업 그리고 0개의 파일을 삭제
  1. 41 0
      tools/git-hooks/pre-commit

+ 41 - 0
tools/git-hooks/pre-commit

@@ -0,0 +1,41 @@
+#!/bin/bash
+# Licensed to Cloudera, Inc. under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  Cloudera, Inc. licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+set -e
+ERRORS=false
+
+for FILE in `git diff --name-only` ; do
+    if [[ "$FILE" =~ ^.+(py)$ ]]; then
+        if [ "grep 'distinct()' $FILE" ]; then  # HUE-3191: Check if distinct() exists in any Python files
+            ERRORS=true
+            echo -e "[WARNING] $FILE: The file contains distinct() which case cause Oracle to fail if the object contains a TextField (CLOB). Ensure that you use defer() on any TextFields in the query or avoid distinct().\n"
+        fi
+
+        if [ "grep 'pdb.set_trace()' $FILE" ]; then
+            ERRORS=true
+            echo -e "[ERROR] $FILE: Found pdb.set_trace() debug statements in file.\n"
+        fi
+    fi
+done
+
+if $ERRORS; then
+    echo -e "To ignore these warnings, commit with --no-verify\n"
+    exit 1
+fi
+
+exit