|  | #!/bin/bash | 
|  | set -ev | 
|  |  | 
|  | # | 
|  | # Generate thrift files so the static code analysis includes an analysis | 
|  | # of the files the thrift compiler spits out.  If running interactively | 
|  | # set the NOBUILD environment variable to skip the boot/config/make phase. | 
|  | # | 
|  |  | 
|  | if [[ -z "$NOBUILD" ]]; then | 
|  | ./bootstrap.sh | 
|  | ./configure --enable-tutorial=no | 
|  | make -j3 precross | 
|  | fi | 
|  |  | 
|  | # | 
|  | # C/C++ static code analysis with cppcheck | 
|  | # add --error-exitcode=1 to --enable=all as soon as everything is fixed | 
|  | # | 
|  | # Python code style check with flake8 | 
|  | # | 
|  | # search for TODO etc within source tree | 
|  | # some statistics about the code base | 
|  | # some info about the build machine | 
|  |  | 
|  | # Compiler cppcheck (All) | 
|  | cppcheck --force --quiet --inline-suppr --enable=all -j2 compiler/cpp/src | 
|  |  | 
|  | # C++ cppcheck (All) | 
|  | cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp | 
|  |  | 
|  | # C Glib cppcheck (All) | 
|  | cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib | 
|  |  | 
|  | # Silent error checks | 
|  | # See THRIFT-4371 : flex generated code triggers "possible null pointer dereference" in yy_init_buffer | 
|  | cppcheck --force --quiet --inline-suppr --suppress="*:thrift/thriftl.cc" --error-exitcode=1 -j2 compiler/cpp/src | 
|  | cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp | 
|  | cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib | 
|  |  | 
|  | # Python code style | 
|  | flake8 | 
|  |  | 
|  | # PHP code style | 
|  | composer install --quiet | 
|  | ./vendor/bin/phpcs | 
|  |  | 
|  | # TODO etc | 
|  | echo FIXMEs: `grep -r FIXME * | wc -l` | 
|  | echo  HACKs: `grep -r HACK * | wc -l` | 
|  | echo  TODOs: `grep -r TODO * | wc -l` | 
|  |  | 
|  | # LoC | 
|  | sloccount . | 
|  |  | 
|  | # System Info | 
|  | dpkg -l | 
|  | uname -a |