Merge: doc: fixed some typos and other misc. corrections
[nit.git] / misc / jenkins / checklicense.sh
1 #!/bin/bash
2 # This file is part of NIT ( http://www.nitlanguage.org ).
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 # Check missing "This file is part of NIT…" comment in committed scripts.
17 #
18 # Usage: checklicense.sh from to
19
20 set -e
21
22 from=${1:-origin/master}
23 to=${2:-HEAD}
24
25 err=0
26
27 cd `git rev-parse --show-toplevel`
28
29 echo "checklicense $from (`git rev-parse "$from"`) .. $to (`git rev-parse "$to"`)"
30 git diff --name-status $from..$to -- "*.nit" "*.sh" | sed -n 's/^A\s*//p' > checklicense_new_files.out
31 if test \! -s checklicense_new_files.out; then
32 echo "No new files"
33 exit 0
34 fi
35 grep -L '\(^\|\b\)# [Tt]his file is part of NIT ' `cat checklicense_new_files.out` 2>/dev/null > checklicense_missing.out || true
36 if test -s checklicense_missing.out; then
37 echo "These files are missing their licence:"
38 echo ""
39 cat checklicense_missing.out
40 echo ""
41 echo "Please double check that the licence text (i.e. \`This file is part of NIT...\`) is included at the begin of these files."
42 exit 1
43 else
44 echo "All `cat checklicense_new_files.out | wc -l` checked new files have a correct license."
45 exit 0
46 fi