| #!/usr/bin/env bash |
| |
| # licensecheck.sh |
| # checks for copyright/license headers on files |
| # excludes filename extensions where this check isn't pertinent |
| |
| set +e -u -o pipefail |
| fail_licensecheck=0 |
| |
| while IFS= read -r -d '' f |
| do |
| grep -q "Copyright\|Apache License" "${f}" |
| rc=$? |
| if [[ $rc != 0 ]]; then |
| echo "ERROR: $f does not contain License Header" |
| fail_licensecheck=1 |
| fi |
| done < <(find . -name ".git" -prune -o -type f \ |
| -name "*.*" \ |
| ! -name "*.PNG" \ |
| ! -name "*.asc" \ |
| ! -name "*.bat" \ |
| ! -name "*.bin" \ |
| ! -name "*.cert" \ |
| ! -name "*.cfg" \ |
| ! -name "*.cnf" \ |
| ! -name "*.conf" \ |
| ! -name "*.cql" \ |
| ! -name "*.crt" \ |
| ! -name "*.csar" \ |
| ! -name "*.csr" \ |
| ! -name "*.csv" \ |
| ! -name "*.ctmpl" \ |
| ! -name "*.curl" \ |
| ! -name "*.db" \ |
| ! -name "*.der" \ |
| ! -name "*.desc" \ |
| ! -name "*.diff" \ |
| ! -name "*.dnsmasq" \ |
| ! -name "*.do" \ |
| ! -name "*.docx" \ |
| ! -name "*.eot" \ |
| ! -name "*.gif" \ |
| ! -name "*.gpg" \ |
| ! -name "*.graffle" \ |
| ! -name "*.ico" \ |
| ! -name "*.iml" \ |
| ! -name "*.in" \ |
| ! -name "*.inc" \ |
| ! -name "*.install" \ |
| ! -name "*.j2" \ |
| ! -name "*.jar" \ |
| ! -name "*.jks" \ |
| ! -name "*.jpg" \ |
| ! -name "*.json" \ |
| ! -name "*.jsonld" \ |
| ! -name "*.JSON" \ |
| ! -name "*.key" \ |
| ! -name "*.list" \ |
| ! -name "*.local" \ |
| ! -path "*.lock" \ |
| ! -name "*.log" \ |
| ! -name "*.mak" \ |
| ! -name "*.md" \ |
| ! -name "*.MF" \ |
| ! -name "*.mk" \ |
| ! -name "*.oar" \ |
| ! -name "*.p12" \ |
| ! -name "*.patch" \ |
| ! -name "*.pb.go" \ |
| ! -name "*.pb.gw.go" \ |
| ! -name "*.pdf" \ |
| ! -name "*.pcap" \ |
| ! -name "*.pem" \ |
| ! -name "*.png" \ |
| ! -name "*.properties" \ |
| ! -name "*.proto" \ |
| ! -name "*.protoset" \ |
| ! -name "*.pyc" \ |
| ! -name "*.repo" \ |
| ! -name "*.robot" \ |
| ! -name "*.rst" \ |
| ! -name "*.rules" \ |
| ! -name "*.service" \ |
| ! -name "*.svg" \ |
| ! -name "*.swp" \ |
| ! -name "*.tar" \ |
| ! -name "*.tar.gz" \ |
| ! -name "*.toml" \ |
| ! -name "*.ttf" \ |
| ! -name "*.txt" \ |
| ! -name "*.woff" \ |
| ! -name "*.xproto" \ |
| ! -name "*.xtarget" \ |
| ! -name "*ignore" \ |
| ! -name "*rc" \ |
| ! -name "*_pb2.py" \ |
| ! -name "*_pb2_grpc.py" \ |
| ! -name "Dockerfile" \ |
| ! -name "Dockerfile.*" \ |
| ! -name "go.mod" \ |
| ! -name "go.sum" \ |
| ! -name "Makefile" \ |
| ! -name "Makefile.*" \ |
| ! -name "README" \ |
| ! -path "*/vendor/*" \ |
| ! -path "*conf*" \ |
| ! -path "*git*" \ |
| ! -path "*swagger*" \ |
| ! -path "*.drawio" \ |
| ! -name "*.pb.h" \ |
| ! -name "*.pb.cc" \ |
| ! -name "*/docs/*" \ |
| -print0 ) |
| |
| exit ${fail_licensecheck} |