| #!/bin/sh |
| |
| CONFIG_FILE=cq-configs/checkstyle/checkstyle.xml |
| cp $CONFIG_FILE /tmp/checkstyle.xml |
| |
| if [ x"$1" == x ]; then |
| compared_branch=develop |
| fi |
| |
| current_branch=$(git rev-parse --abbrev-ref HEAD) |
| current_branch_filtered=$(echo $current_branch | tr "/" "-") |
| |
| # save local changes if any |
| |
| modified_files=$(git --no-pager diff develop --name-only | grep ".java$") |
| |
| # Check style on current branch |
| checkstyle -c /tmp/checkstyle.xml $modified_files | sed "s/:[0-9]*//g" > /tmp/checkstyle-$current_branch_filtered.log |
| |
| # Check style on current develop |
| git stash | grep "No local changes to save" > /dev/null |
| needpop=$? |
| git checkout $compared_branch |
| checkstyle -c /tmp/checkstyle.xml $modified_files | sed "s/:[0-9]*//g" > /tmp/checkstyle-develop.log |
| |
| # Back on current branch |
| git checkout $current_branch |
| |
| echo |
| echo -------------------------- |
| echo The following warnings seem to be introduced by your branch: |
| diff -u /tmp/checkstyle-develop.log /tmp/checkstyle-$current_branch_filtered.log > /tmp/checkstyle.diff |
| cat /tmp/checkstyle.diff | grep "^+" | grep -v "^+++" || echo Yay no new style errors!! |
| echo Style errors removed: |
| cat /tmp/checkstyle.diff | grep "^-" | wc -l |
| |
| # restore local changes |
| if [ $needpop -eq 1 ]; then |
| git stash pop > /dev/null |
| fi |