github.com/adecaro/fabric-ca@v2.0.0-alpha+incompatible/scripts/check_license (about)

     1  #!/bin/bash
     2  #
     3  # Copyright IBM Corp. All Rights Reserved.
     4  #
     5  # SPDX-License-Identifier: Apache-2.0
     6  #
     7  
     8  function filterGeneratedFiles {
     9      for f in $@; do
    10          head -n2 $f | grep -qE 'Code generated by.*DO NOT EDIT' || echo $f
    11      done
    12  }
    13  
    14  function filterExcludedFiles {
    15    CHECK=`echo "$CHECK" \
    16  		| grep -v "^\.git/" \
    17  		| grep -v "^\.build/" \
    18  		| grep -v "^vendor/" \
    19  		| grep -v "testdata/" \
    20  		| grep -v "swagger/" \
    21  		| grep -v "^LICENSE$" \
    22  		| grep -v "\.png$" \
    23  		| grep -v "\.rst$" \
    24  		| grep -v "\.txt$" \
    25  		| grep -v "\.pem$" \
    26  		| grep -v "_sk$" \
    27  		| grep -v "\.key$" \
    28  		| grep -v "\.gen\.go$" \
    29  		| grep -v "^Gopkg\.lock$" \
    30  		| grep -v "\.md$" \
    31  		| grep -v "\.pb\.go$" \
    32  		| grep -v ".gitignore" \
    33  		| grep -v "ci.properties" \
    34  		| sort -u`
    35  
    36    CHECK=$(filterGeneratedFiles "$CHECK")
    37  }
    38  
    39  CHECK=$(git diff --name-only --diff-filter=ACMRTUXB HEAD)
    40  filterExcludedFiles
    41  if [[ -z "$CHECK" ]]; then
    42    LAST_COMMITS=($(git log -2 --pretty=format:"%h"))
    43    CHECK=$(git diff-tree --no-commit-id --name-only --diff-filter=ACMRTUXB -r ${LAST_COMMITS[1]} ${LAST_COMMITS[0]})
    44    filterExcludedFiles
    45  fi
    46  
    47  if [[ -z "$CHECK" ]]; then
    48     echo "All files are excluded from having license headers"
    49     exit 0
    50  fi
    51  
    52  echo "Checking Go files for license headers ..."
    53  missing=`echo "$CHECK" | xargs ls -d 2>/dev/null | xargs grep -L "SPDX-License-Identifier"`
    54  if [[ -z "$missing" ]]; then
    55     echo "All files have SPDX-License-Identifier headers"
    56     exit 0
    57  fi
    58  echo "The following files are missing SPDX-License-Identifier headers:"
    59  echo "$missing"
    60  echo
    61  echo "Please replace the Apache license header comment text with:"
    62  echo "SPDX-License-Identifier: Apache-2.0"
    63  
    64  missing=`echo "$missing" | xargs ls -d 2>/dev/null | xargs grep -L "Apache License"`
    65  if [ -z "$missing" ]; then
    66     echo "All remaining files have Apache 2.0 headers"
    67     exit 0
    68  fi
    69  
    70  echo "The following files are missing license headers:"
    71  echo "$missing"
    72  exit 1