cpplint_pre_commit.hook 841 字节
Newer Older
Y
Yi Wang 已提交
1 2 3
#!/bin/bash

TOTAL_ERRORS=0
T
Tao Luo 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16
if [[ ! $TRAVIS_BRANCH ]]; then
  # install cpplint on local machine.
  if [[ ! $(which cpplint) ]]; then
    pip install cpplint
  fi
  # diff files on local machine. 
  files=$(git diff --cached --name-status | awk '$1 != "D" {print $2}')
else
  # diff files between PR and latest commit on Travis CI. 
  branch_ref=$(git rev-parse "$TRAVIS_BRANCH")
  head_ref=$(git rev-parse HEAD)
  files=$(git diff --name-status $branch_ref $head_ref | awk '$1 != "D" {print $2}')
fi
Y
Yi Wang 已提交
17
# The trick to remove deleted files: https://stackoverflow.com/a/2413151
T
Tao Luo 已提交
18
for file in $files; do
19
    if [[ $file =~ ^(patches/.*) ]]; then
W
Wu Yi 已提交
20 21
        continue;
    else
22
        cpplint --filter=-readability/fn_size,-build/include_what_you_use,-build/c++11 $file;
W
Wu Yi 已提交
23 24
        TOTAL_ERRORS=$(expr $TOTAL_ERRORS + $?);
    fi
Y
Yi Wang 已提交
25 26 27
done

exit $TOTAL_ERRORS