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