3
3
PROJECT_ROOT=$( git rev-parse --show-toplevel)
4
4
LICENSE_LOCATION=" $PROJECT_ROOT " /scripts/LICENSE_HEADER
5
5
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 " )
7
8
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
+ )
8
22
EXCLUDE=(
9
23
" Code generated by"
10
24
" David Lazar"
@@ -16,6 +30,7 @@ EXCLUDE=(
16
30
)
17
31
FILTER=$( IFS=" |" ; echo " ${EXCLUDE[*]} " )
18
32
INPLACE=false
33
+ UPDATE=false
19
34
VERBOSE=false
20
35
MOD_COUNT=0
21
36
RETURN_VALUE=0
@@ -27,6 +42,7 @@ usage() {
27
42
echo
28
43
echo " Args:"
29
44
echo " -i Edit in-place."
45
+ echo " -u Update license to current year."
30
46
echo " -v Verbose, same as doing \` head -n ${NUMLINES:- 15} \` on each file."
31
47
echo
32
48
}
@@ -39,6 +55,9 @@ while [ "$1" != "" ]; do
39
55
-i)
40
56
INPLACE=true
41
57
;;
58
+ -u)
59
+ UPDATE=true
60
+ ;;
42
61
-v) VERBOSE=true
43
62
;;
44
63
-h)
@@ -62,7 +81,11 @@ for FILE in $VERSIONED_GO_FILES; do
62
81
RETURN_VALUE=1
63
82
64
83
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
66
89
cat <( echo -e " $LICENSE \n" ) " $PROJECT_ROOT /$FILE " > " $PROJECT_ROOT /$FILE " .1 &&
67
90
mv " $PROJECT_ROOT /$FILE " {.1,}
68
91
(( MOD_COUNT++ ))
@@ -77,17 +100,48 @@ for FILE in $VERSIONED_GO_FILES; do
77
100
fi
78
101
done
79
102
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
+
80
123
# check the README.md file.
81
- READMECOPYRIGHT=" Copyright (C) 2019-$( date + " %Y " ) , Algorand Inc."
124
+ READMECOPYRIGHT=" Copyright (C) 2019-$CURRENT_YEAR , Algorand Inc."
82
125
if [ " $( < README.md grep -c " ${READMECOPYRIGHT} " | tr -d ' ' ) " = " 0" ]; then
83
126
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
85
139
fi
86
140
87
141
if [ $RETURN_VALUE -ne 0 ]; then
88
142
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 ."
91
145
else
92
146
echo " Modified $MOD_COUNT file(s)."
93
147
fi
0 commit comments