summaryrefslogtreecommitdiff
path: root/infra/nnfw/command/copyright-check
blob: 79ead2e3159a32d5b175bf845412d306102093b3 (plain)
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
#!/bin/bash

INVALID_EXIT=0

check_copyright() {
  DIRECTORIES_NOT_TO_BE_TESTED=$2
  CORRECT_COPYRIGHT="Copyright \(c\) [0-9]+ Samsung Electronics Co\., Ltd\. All Rights Reserved"

  FILES_TO_CHECK=$(git ls-files -c --exclude-standard)
  FILES_TO_CHECK_COPYRIGHTS=()
  for f in ${FILES_TO_CHECK[@]}; do
    # File extension to check
    if [[ ${f} == +(*.h|*.hpp|*.cpp|*.cc|*.c|*.cl) ]]; then
      FILES_TO_CHECK_COPYRIGHTS+=("${f}")
    fi
  done

  for s in ${DIRECTORIES_NOT_TO_BE_TESTED[@]}; do
    FILES_TO_CHECK_COPYRIGHTS=(${FILES_TO_CHECK_COPYRIGHTS[*]/$s*/})
  done

  if [[ ${#FILES_TO_CHECK_COPYRIGHTS} -ne 0 ]]; then
    for f in ${FILES_TO_CHECK_COPYRIGHTS[@]}; do
      if ! grep -qE "$CORRECT_COPYRIGHT" $f; then
        CREATED_YEAR=$(git log --follow --format=%aD $f | tail -1 | awk '{print $4}')
        EXAMPLE_COPYRIGHT="Copyright (c) $CREATED_YEAR Samsung Electronics Co., Ltd. All Rights Reserved"
        echo "Copyright format of $f is incorrect: recommend \"$EXAMPLE_COPYRIGHT\""
        INVALID_EXIT=1
      fi
    done
  fi
}

DIRECTORIES_NOT_TO_BE_TESTED=()

for DIR_NOT_TO_BE_TESTED in $(find -name '.FORMATDENY' -exec dirname {} \;); do
    DIRECTORIES_NOT_TO_BE_TESTED+=("$DIR_NOT_TO_BE_TESTED")
done

check_copyright $DIRECTORIES_NOT_TO_BE_TESTED

if [[ $INVALID_EXIT -ne 0 ]]; then
    echo "[FAILED] Invalid copyright check exit."
    exit 1
fi