github.com/cactusblossom/fabric-ca@v0.0.0-20200611062428-0082fc643826/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 "\.pptx$" \
    24  		| grep -v "\.rst$" \
    25  		| grep -v "\.txt$" \
    26  		| grep -v "\.pem$" \
    27  		| grep -v "_sk$" \
    28  		| grep -v "\.key$" \
    29  		| grep -v "\.gen\.go$" \
    30  		| grep -v "^Gopkg\.lock$" \
    31  		| grep -v "\.md$" \
    32  		| grep -v "\.pb\.go$" \
    33  		| grep -v ".gitignore" \
    34  		| grep -v "ci.properties" \
    35  		| sort -u`
    36  
    37    CHECK=$(filterGeneratedFiles "$CHECK")
    38  }
    39  
    40  CHECK=$(git diff --name-only --diff-filter=ACMRTUXB HEAD)
    41  filterExcludedFiles
    42  if [[ -z "$CHECK" ]]; then
    43    LAST_COMMITS=($(git log -2 --pretty=format:"%h"))
    44    CHECK=$(git diff-tree --no-commit-id --name-only --diff-filter=ACMRTUXB -r ${LAST_COMMITS[1]} ${LAST_COMMITS[0]})
    45    filterExcludedFiles
    46  fi
    47  
    48  if [[ -z "$CHECK" ]]; then
    49     echo "All files are excluded from having license headers"
    50     exit 0
    51  fi
    52  
    53  echo "Checking Go files for license headers ..."
    54  missing=`echo "$CHECK" | xargs ls -d 2>/dev/null | xargs grep -L "SPDX-License-Identifier"`
    55  if [[ -z "$missing" ]]; then
    56     echo "All files have SPDX-License-Identifier headers"
    57     exit 0
    58  fi
    59  echo "The following files are missing SPDX-License-Identifier headers:"
    60  echo "$missing"
    61  echo
    62  echo "Please replace the Apache license header comment text with:"
    63  echo "SPDX-License-Identifier: Apache-2.0"
    64  
    65  missing=`echo "$missing" | xargs ls -d 2>/dev/null | xargs grep -L "Apache License"`
    66  if [ -z "$missing" ]; then
    67     echo "All remaining files have Apache 2.0 headers"
    68     exit 0
    69  fi
    70  
    71  echo "The following files are missing license headers:"
    72  echo "$missing"
    73  exit 1