Skip to content

Commit 6d6f028

Browse files
authored
Chore: Update check_license script to update copyright year (algorand#5888)
1 parent 3a80a40 commit 6d6f028

File tree

1 file changed

+60
-6
lines changed

1 file changed

+60
-6
lines changed

scripts/check_license.sh

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,22 @@
33
PROJECT_ROOT=$(git rev-parse --show-toplevel)
44
LICENSE_LOCATION="$PROJECT_ROOT"/scripts/LICENSE_HEADER
55
NUMLINES=$(< "$LICENSE_LOCATION" wc -l | tr -d ' ')
6-
LICENSE=$(sed "s/{DATE_Y}/$(date +"%Y")/" "$LICENSE_LOCATION")
6+
CURRENT_YEAR=$(date +"%Y")
7+
LICENSE=$(sed "s/{DATE_Y}/$CURRENT_YEAR/" "$LICENSE_LOCATION")
78
VERSIONED_GO_FILES=$(git ls-tree --full-tree --name-only -r HEAD | grep "\.go$")
9+
EXTRA_FILES=(
10+
cmd/tealdbg/bundle_home_html.sh
11+
crypto/memcpy_chk_windows.c
12+
tools/x-repo-types/typeAnalyzer/main.tmpl
13+
test/heapwatch/block_history.py
14+
test/heapwatch/block_history_plot.py
15+
test/heapwatch/metrics_delta.py
16+
test/heapwatch/nodeHostTarget.py
17+
test/heapwatch/client_ram_report.py
18+
test/heapwatch/runNodeHost.py
19+
test/heapwatch/block_history_relays.py
20+
test/heapwatch/heapWatch.py
21+
)
822
EXCLUDE=(
923
"Code generated by"
1024
"David Lazar"
@@ -16,6 +30,7 @@ EXCLUDE=(
1630
)
1731
FILTER=$(IFS="|" ; echo "${EXCLUDE[*]}")
1832
INPLACE=false
33+
UPDATE=false
1934
VERBOSE=false
2035
MOD_COUNT=0
2136
RETURN_VALUE=0
@@ -27,6 +42,7 @@ usage() {
2742
echo
2843
echo "Args:"
2944
echo "-i Edit in-place."
45+
echo "-u Update license to current year."
3046
echo "-v Verbose, same as doing \`head -n ${NUMLINES:-15}\` on each file."
3147
echo
3248
}
@@ -39,6 +55,9 @@ while [ "$1" != "" ]; do
3955
-i)
4056
INPLACE=true
4157
;;
58+
-u)
59+
UPDATE=true
60+
;;
4261
-v) VERBOSE=true
4362
;;
4463
-h)
@@ -62,7 +81,11 @@ for FILE in $VERSIONED_GO_FILES; do
6281
RETURN_VALUE=1
6382

6483
if ! $VERBOSE; then
65-
if $INPLACE; then
84+
if $UPDATE; then
85+
sed -i.orig s/Copyright\ \(C\)\ 2019-....\ Algorand,\ Inc\./Copyright\ \(C\)\ 2019-$CURRENT_YEAR\ Algorand,\ Inc./ "$PROJECT_ROOT/$FILE" && \
86+
rm "$PROJECT_ROOT/$FILE".orig
87+
((MOD_COUNT++))
88+
elif $INPLACE; then
6689
cat <(echo -e "$LICENSE\n") "$PROJECT_ROOT/$FILE" > "$PROJECT_ROOT/$FILE".1 &&
6790
mv "$PROJECT_ROOT/$FILE"{.1,}
6891
((MOD_COUNT++))
@@ -77,17 +100,48 @@ for FILE in $VERSIONED_GO_FILES; do
77100
fi
78101
done
79102

103+
# non-go files that include a license header
104+
for FILE in "${EXTRA_FILES[@]}"; do
105+
if ! grep -qs "Copyright (C) 2019-$CURRENT_YEAR Algorand, Inc." "$PROJECT_ROOT/$FILE"; then
106+
RETURN_VALUE=1
107+
if ! $VERBOSE; then
108+
if $UPDATE; then
109+
sed -i.orig s/Copyright\ \(C\)\ 2019-....\ Algorand,\ Inc\./Copyright\ \(C\)\ 2019-$CURRENT_YEAR\ Algorand,\ Inc./ "$PROJECT_ROOT/$FILE" && \
110+
rm "$PROJECT_ROOT/$FILE".orig
111+
((MOD_COUNT++))
112+
fi
113+
# It's dangerous to do inplace updates of non-go files, because their format might be different
114+
echo "$FILE"
115+
else
116+
echo -e "\n${RED_FG}$FILE${END_FG_COLOR}"
117+
<"$PROJECT_ROOT/$FILE" head -n "$NUMLINES"
118+
echo
119+
fi
120+
fi
121+
done
122+
80123
# check the README.md file.
81-
READMECOPYRIGHT="Copyright (C) 2019-$(date +"%Y"), Algorand Inc."
124+
READMECOPYRIGHT="Copyright (C) 2019-$CURRENT_YEAR, Algorand Inc."
82125
if [ "$(<README.md grep -c "${READMECOPYRIGHT}" | tr -d ' ')" = "0" ]; then
83126
RETURN_VALUE=1
84-
echo "README.md file need to have its license date range updated."
127+
if ! $VERBOSE; then
128+
if $UPDATE; then
129+
sed -i.orig s/Copyright\ \(C\)\ 2019-....,\ Algorand\ Inc\./Copyright\ \(C\)\ 2019-$CURRENT_YEAR,\ Algorand\ Inc./ README.md &&
130+
rm README.md.orig
131+
((MOD_COUNT++))
132+
fi
133+
echo "README.md"
134+
else
135+
echo -e "\n${RED_FG}README.md${END_FG_COLOR}"
136+
grep 'Copyright (C) 2019' README.md
137+
echo
138+
fi
85139
fi
86140

87141
if [ $RETURN_VALUE -ne 0 ]; then
88142
echo -e "\n${RED_FG}FAILED LICENSE CHECK.${END_FG_COLOR}"
89-
if [ $INPLACE == "false" ]; then
90-
echo -e "Use 'check_license.sh -i' to fix."
143+
if [ $INPLACE == "false" ] && [ $UPDATE == "false" ]; then
144+
echo -e "Use 'check_license -i' to install to new files, 'check_license.sh -u' to update year."
91145
else
92146
echo "Modified $MOD_COUNT file(s)."
93147
fi

0 commit comments

Comments
 (0)