b9ae5b46a0b1ad5e51a38d56954979c02a3d9037
[platform/core/ml/nnfw.git] / infra / nnfw / command / copyright-check
1 #!/bin/bash
2
3 INVALID_EXIT=0
4
5 check_copyright() {
6   DIRECTORIES_NOT_TO_BE_TESTED=$1
7   CORRECT_COPYRIGHT="Copyright \(c\) [0-9]+ Samsung Electronics Co\., Ltd\. All Rights Reserved"
8
9   FILES_TO_CHECK=$(git ls-files -c --exclude-standard)
10   FILES_TO_CHECK_COPYRIGHTS=()
11   for f in ${FILES_TO_CHECK[@]}; do
12     # File extension to check
13     if [[ ${f} == +(*.h|*.hpp|*.cpp|*.cc|*.c|*.cl) ]]; then
14       FILES_TO_CHECK_COPYRIGHTS+=("${f}")
15     fi
16   done
17
18   for s in ${DIRECTORIES_NOT_TO_BE_TESTED[@]}; do
19     FILES_TO_CHECK_COPYRIGHTS=(${FILES_TO_CHECK_COPYRIGHTS[*]/$s*/})
20   done
21
22   if [[ ${#FILES_TO_CHECK_COPYRIGHTS} -ne 0 ]]; then
23     for f in ${FILES_TO_CHECK_COPYRIGHTS[@]}; do
24       if ! grep -qE "$CORRECT_COPYRIGHT" $f; then
25         CREATED_YEAR=$(git log --follow --format=%aD $f | tail -1 | awk '{print $4}')
26         EXAMPLE_COPYRIGHT="Copyright (c) $CREATED_YEAR Samsung Electronics Co., Ltd. All Rights Reserved"
27         echo "Copyright format of $f is incorrect: recommend \"$EXAMPLE_COPYRIGHT\""
28         INVALID_EXIT=1
29       fi
30     done
31   fi
32 }
33
34 DIRECTORIES_NOT_TO_BE_TESTED=()
35
36 for DIR_NOT_TO_BE_TESTED in $(git ls-files -co --exclude-standard '*/.FORMATDENY'); do
37     DIRECTORIES_NOT_TO_BE_TESTED+=("$DIR_NOT_TO_BE_TESTED")
38   DIRECTORIES_NOT_TO_BE_TESTED+=($(dirname "${DIR_NOT_TO_BE_TESTED}"))
39 done
40
41 check_copyright $DIRECTORIES_NOT_TO_BE_TESTED
42
43 if [[ $INVALID_EXIT -ne 0 ]]; then
44     echo "[FAILED] Invalid copyright check exit."
45     exit 1
46 fi