-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathcopyright.sh
executable file
·98 lines (80 loc) · 2.28 KB
/
copyright.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env bash
# Copyright 2015 Remi Even
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
old_ifs=$IFS
# You can modify the following variables
offset=0
author="Thirty Meter Telescope International Observatory"
year="2025"
ext="(ts|tsx)"
comment_start='/*'
comment_middle=' *'
comment_end=' */'
license='Copyright (C) {{year}} {{author}}
SPDX-License-Identifier: Apache-2.0'
# End of modifiable variables
verbose=true
function generate_header_content {
file_name=$1
echo -e "$license" \
| sed -e "s/{{author}}/$author/g" \
| sed -e "s/{{year}}/$year/g" \
| sed -e "s/\(.*\)/$comment_middle \1/" \
| sed -e "s/[ \t]*$//" \
>> .licensifytmp
}
function add_header {
goal=$1
if [[ ! -f $goal ]]; then
echo "Warning : Can not find file \"$goal\""
return
fi
line2=$(head -2 $goal)
if [[ $line2 == *"Copyright (C)"* ]]; then
return
fi
file_name=$(basename $goal)
i=0
touch .licensifytmp
while IFS='' read -r line || [[ -n $line ]]; do
if (( $i == $offset )); then
echo "$comment_start" >> .licensifytmp
generate_header_content $file_name
echo -e "$comment_end\n" >> .licensifytmp
if [[ $verbose = true ]]; then
echo "Info : Added copyright header to $(basename $goal)"
fi
fi
(( i++ ))
echo "$line" >> .licensifytmp
done < $goal
mv .licensifytmp $goal
}
if [[ $1 = '-v' ]]; then
verbose=true
shift
fi
if (( $# == 0 )); then
srcDirectory=$(pwd)/src
testDirectory=$(pwd)/test
goals=$(find $srcDirectory -name \*.ts -o -name \*.tsx -type f)
goals+=" "
goals+=$(find $testDirectory -name \*.ts -o -name \*.tsx -type f)
else
goals=$*
fi
for goal in $goals; do
add_header $goal
done
IFS=$old_ifs