| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | #!/bin/bash# Copyright The OpenTelemetry Authors# SPDX-License-Identifier: Apache-2.0if [[ ! -e tools/check_copyright.sh ]]; then  echo "This tool must be run from the topmost directory." >&2  exit 1fiset -e## Process input file .copyright-ignore,# - remove comments# - remove blank lines# to create file /tmp/all_ignored#grep -v "^#" < .copyright-ignore | \grep -v "^[[:space:]]*$" > /tmp/all_ignored## Find all files from the repository# to create file /tmp/all_checked#find . -type f -print | sort -u > /tmp/all_checked## Filter out /tmp/all_checked,# remove all ignored patterns from /tmp/all_ignored# When the pattern is *.md,# make sure to filter *\.md to avoid hiding *.cmd# Then, *\.md needs to be escaped to *\\.md,# to be given to egrep, hence the sed.# while IFS= read -r PATTERN; do  SAFE_PATTERN=`echo "${PATTERN}" | sed "s!\.!\\\\\.!g"`  echo "Filtering out ${SAFE_PATTERN}"  egrep -v "${SAFE_PATTERN}" < /tmp/all_checked > /tmp/all_checked-tmp  mv /tmp/all_checked-tmp /tmp/all_checkeddone < /tmp/all_ignored## For all files in /tmp/all_checked# - verify there is copyright# - verify there is a license# and append to /tmp/all_missing## Valid copyright strings are:# - Copyright The OpenTelemetry Authors## Valid license strings are:# - SPDX-License-Identifier: Apache-2.0#rm -rf /tmp/all_missingtouch /tmp/all_missingfor FILE in `cat /tmp/all_checked`do  echo "Checking ${FILE}"  export COPYRIGHT=`head -10 ${FILE} | grep -c "Copyright The OpenTelemetry Authors"`  export LICENSE=`head -10 ${FILE} | grep -c "SPDX-License-Identifier: Apache-2.0"`  if [ "$COPYRIGHT" == "0" ]; then    echo "Missing copyright in ${FILE}" >> /tmp/all_missing  fi;  if [ "${LICENSE}" == "0" ]; then    echo "Missing license in ${FILE}" >> /tmp/all_missing  fi;done## Final report#FAIL_COUNT=`wc -l < /tmp/all_missing`if [ ${FAIL_COUNT} != "0" ]; then  #  # CI FAILED  #  cat /tmp/all_missing  echo "Total number of failed checks: ${FAIL_COUNT}"  exit 1fi;## CI PASSED#exit 0
 |