github.com/lzy4123/fabric@v2.1.1+incompatible/scripts/check_license.sh (about)

     1  #!/bin/bash
     2  #
     3  # Copyright IBM Corp, SecureKey Technologies Inc. All Rights Reserved.
     4  #
     5  # SPDX-License-Identifier: Apache-2.0
     6  #
     7  
     8  # shellcheck source=/dev/null
     9  source "$(cd "$(dirname "$0")" && pwd)/functions.sh"
    10  
    11  CHECK=$(git diff --name-only --diff-filter=ACMRTUXB HEAD | tr '\n' ' ')
    12  if [[ -z "$CHECK" ]]; then
    13      CHECK=$(git diff-tree --no-commit-id --name-only --diff-filter=ACMRTUXB -r "HEAD^..HEAD" | tr '\n' ' ')
    14  fi
    15  
    16  FILTERED=$(filterExcludedAndGeneratedFiles "$CHECK")
    17  if [[ -z "$FILTERED" ]]; then
    18      echo "All files are excluded from having license headers"
    19      exit 0
    20  fi
    21  
    22  missing=$(echo "$FILTERED" | sort -u |  xargs ls -d 2>/dev/null | xargs grep -L "SPDX-License-Identifier")
    23  if [[ -z "$missing" ]]; then
    24      echo "All files have SPDX-License-Identifier headers"
    25      exit 0
    26  fi
    27  echo "The following files are missing SPDX-License-Identifier headers:"
    28  echo "$missing"
    29  echo
    30  echo "Please replace the Apache license header comment text with:"
    31  echo "SPDX-License-Identifier: Apache-2.0"
    32  
    33  echo
    34  echo "Checking committed files for traditional Apache License headers ..."
    35  missing=$(echo "$missing" | xargs ls -d 2>/dev/null | xargs grep -L "http://www.apache.org/licenses/LICENSE-2.0")
    36  if [[ -z "$missing" ]]; then
    37      echo "All remaining files have Apache 2.0 headers"
    38      exit 0
    39  fi
    40  echo "The following files are missing traditional Apache 2.0 headers:"
    41  echo "$missing"
    42  echo "Fatal Error - All files must have a license header"
    43  exit 1