#!/usr/bin/env bash # Copyright (C) 2017-2020 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at # https://opensource.org/licenses/ISC # # SPDX-License-Identifier: ISC echo echo "===================================" echo "Check Python UTF coding and shebang" echo "===================================" echo ERROR_FILES_SHEBANG="" ERROR_FILES_UTF_CODING="" FILES_TO_CHECK=`find . \ -size +0 -type f \( -name '*.py' \) \ \( -not -path "*/.*/*" -not -path "*/third_party/*" -not -path "*/env/*" \)` for file in $FILES_TO_CHECK; do echo "Checking $file" if [[ -x $file ]]; then grep -q "\#\!/usr/bin/env python3" $file || ERROR_FILES_SHEBANG="$ERROR_FILES_SHEBANG $file" fi grep -q "\#.*coding: utf-8" $file || ERROR_FILES_UTF_CODING="$ERROR_FILES_UTF_CODING $file" done if [ ! -z "$ERROR_FILES_SHEBANG" ]; then for file in $ERROR_FILES_SHEBANG; do echo "ERROR: $file does not have the python3 shebang." done exit 1 fi if [ ! -z "$ERROR_FILES_UTF_CODING" ]; then for file in $ERROR_FILES_UTF_CODING; do echo "ERROR: $file does not have the UTF encoding set." echo "Add # coding: utf-8" done exit 1 fi echo