summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Lee <john.lee@algorand.com>2024-01-02 17:28:13 -0500
committerGitHub <noreply@github.com>2024-01-02 17:28:13 -0500
commit6d6f028446b96b42805f5e3b516d902117dcdc30 (patch)
treeeac43b207114bb7c18256b6252ef6c61ec15dcca
parent3a80a406f7b94161ce031bec00b5a82bdf9becba (diff)
Chore: Update check_license script to update copyright year (#5888)
-rwxr-xr-xscripts/check_license.sh66
1 files changed, 60 insertions, 6 deletions
diff --git a/scripts/check_license.sh b/scripts/check_license.sh
index 51f83d7d4..f61e93396 100755
--- a/scripts/check_license.sh
+++ b/scripts/check_license.sh
@@ -3,8 +3,22 @@
PROJECT_ROOT=$(git rev-parse --show-toplevel)
LICENSE_LOCATION="$PROJECT_ROOT"/scripts/LICENSE_HEADER
NUMLINES=$(< "$LICENSE_LOCATION" wc -l | tr -d ' ')
-LICENSE=$(sed "s/{DATE_Y}/$(date +"%Y")/" "$LICENSE_LOCATION")
+CURRENT_YEAR=$(date +"%Y")
+LICENSE=$(sed "s/{DATE_Y}/$CURRENT_YEAR/" "$LICENSE_LOCATION")
VERSIONED_GO_FILES=$(git ls-tree --full-tree --name-only -r HEAD | grep "\.go$")
+EXTRA_FILES=(
+ cmd/tealdbg/bundle_home_html.sh
+ crypto/memcpy_chk_windows.c
+ tools/x-repo-types/typeAnalyzer/main.tmpl
+ test/heapwatch/block_history.py
+ test/heapwatch/block_history_plot.py
+ test/heapwatch/metrics_delta.py
+ test/heapwatch/nodeHostTarget.py
+ test/heapwatch/client_ram_report.py
+ test/heapwatch/runNodeHost.py
+ test/heapwatch/block_history_relays.py
+ test/heapwatch/heapWatch.py
+)
EXCLUDE=(
"Code generated by"
"David Lazar"
@@ -16,6 +30,7 @@ EXCLUDE=(
)
FILTER=$(IFS="|" ; echo "${EXCLUDE[*]}")
INPLACE=false
+UPDATE=false
VERBOSE=false
MOD_COUNT=0
RETURN_VALUE=0
@@ -27,6 +42,7 @@ usage() {
echo
echo "Args:"
echo "-i Edit in-place."
+ echo "-u Update license to current year."
echo "-v Verbose, same as doing \`head -n ${NUMLINES:-15}\` on each file."
echo
}
@@ -39,6 +55,9 @@ while [ "$1" != "" ]; do
-i)
INPLACE=true
;;
+ -u)
+ UPDATE=true
+ ;;
-v) VERBOSE=true
;;
-h)
@@ -62,7 +81,11 @@ for FILE in $VERSIONED_GO_FILES; do
RETURN_VALUE=1
if ! $VERBOSE; then
- if $INPLACE; then
+ if $UPDATE; then
+ sed -i.orig s/Copyright\ \(C\)\ 2019-....\ Algorand,\ Inc\./Copyright\ \(C\)\ 2019-$CURRENT_YEAR\ Algorand,\ Inc./ "$PROJECT_ROOT/$FILE" && \
+ rm "$PROJECT_ROOT/$FILE".orig
+ ((MOD_COUNT++))
+ elif $INPLACE; then
cat <(echo -e "$LICENSE\n") "$PROJECT_ROOT/$FILE" > "$PROJECT_ROOT/$FILE".1 &&
mv "$PROJECT_ROOT/$FILE"{.1,}
((MOD_COUNT++))
@@ -77,17 +100,48 @@ for FILE in $VERSIONED_GO_FILES; do
fi
done
+# non-go files that include a license header
+for FILE in "${EXTRA_FILES[@]}"; do
+ if ! grep -qs "Copyright (C) 2019-$CURRENT_YEAR Algorand, Inc." "$PROJECT_ROOT/$FILE"; then
+ RETURN_VALUE=1
+ if ! $VERBOSE; then
+ if $UPDATE; then
+ sed -i.orig s/Copyright\ \(C\)\ 2019-....\ Algorand,\ Inc\./Copyright\ \(C\)\ 2019-$CURRENT_YEAR\ Algorand,\ Inc./ "$PROJECT_ROOT/$FILE" && \
+ rm "$PROJECT_ROOT/$FILE".orig
+ ((MOD_COUNT++))
+ fi
+ # It's dangerous to do inplace updates of non-go files, because their format might be different
+ echo "$FILE"
+ else
+ echo -e "\n${RED_FG}$FILE${END_FG_COLOR}"
+ <"$PROJECT_ROOT/$FILE" head -n "$NUMLINES"
+ echo
+ fi
+ fi
+done
+
# check the README.md file.
-READMECOPYRIGHT="Copyright (C) 2019-$(date +"%Y"), Algorand Inc."
+READMECOPYRIGHT="Copyright (C) 2019-$CURRENT_YEAR, Algorand Inc."
if [ "$(<README.md grep -c "${READMECOPYRIGHT}" | tr -d ' ')" = "0" ]; then
RETURN_VALUE=1
- echo "README.md file need to have its license date range updated."
+ if ! $VERBOSE; then
+ if $UPDATE; then
+ sed -i.orig s/Copyright\ \(C\)\ 2019-....,\ Algorand\ Inc\./Copyright\ \(C\)\ 2019-$CURRENT_YEAR,\ Algorand\ Inc./ README.md &&
+ rm README.md.orig
+ ((MOD_COUNT++))
+ fi
+ echo "README.md"
+ else
+ echo -e "\n${RED_FG}README.md${END_FG_COLOR}"
+ grep 'Copyright (C) 2019' README.md
+ echo
+ fi
fi
if [ $RETURN_VALUE -ne 0 ]; then
echo -e "\n${RED_FG}FAILED LICENSE CHECK.${END_FG_COLOR}"
- if [ $INPLACE == "false" ]; then
- echo -e "Use 'check_license.sh -i' to fix."
+ if [ $INPLACE == "false" ] && [ $UPDATE == "false" ]; then
+ echo -e "Use 'check_license -i' to install to new files, 'check_license.sh -u' to update year."
else
echo "Modified $MOD_COUNT file(s)."
fi