46 lines
1.4 KiB
Bash
46 lines
1.4 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Copyright IBM Corp, SecureKey Technologies Inc. All Rights Reserved.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
set -euo pipefail
|
|
|
|
# shellcheck source=/dev/null
|
|
source "$(cd "$(dirname "$0")" && pwd)/functions.sh"
|
|
|
|
CHECK=$(git diff --name-only --diff-filter=ACMRTUXB HEAD | tr '\n' ' ')
|
|
if [[ -z "$CHECK" ]]; then
|
|
CHECK=$(git diff-tree --no-commit-id --name-only --diff-filter=ACMRTUXB -r "HEAD^..HEAD" | tr '\n' ' ')
|
|
fi
|
|
|
|
FILTERED=$(filterExcludedAndGeneratedFiles "$CHECK")
|
|
if [[ -z "$FILTERED" ]]; then
|
|
echo "All files are excluded from having license headers"
|
|
exit 0
|
|
fi
|
|
|
|
missing=$(echo "$FILTERED" | sort -u | xargs ls -d 2>/dev/null | xargs grep -L "SPDX-License-Identifier") || true
|
|
if [[ -z "$missing" ]]; then
|
|
echo "All files have SPDX-License-Identifier headers"
|
|
exit 0
|
|
fi
|
|
echo "The following files are missing SPDX-License-Identifier headers:"
|
|
echo "$missing"
|
|
echo
|
|
echo "Please replace the Apache license header comment text with:"
|
|
echo "SPDX-License-Identifier: Apache-2.0"
|
|
|
|
echo
|
|
echo "Checking committed files for traditional Apache License headers ..."
|
|
missing=$(echo "$missing" | xargs ls -d 2>/dev/null | xargs grep -L "http://www.apache.org/licenses/LICENSE-2.0") || true
|
|
if [[ -z "$missing" ]]; then
|
|
echo "All remaining files have Apache 2.0 headers"
|
|
exit 0
|
|
fi
|
|
echo "The following files are missing traditional Apache 2.0 headers:"
|
|
echo "$missing"
|
|
echo "Fatal Error - All files must have a license header"
|
|
exit 1
|