tests/tools/check_source.sh
changeset 2184 bbd2364fbf71
parent 2183 63591802d3e2
child 2241 e762e234181d
equal deleted inserted replaced
2183:63591802d3e2 2184:bbd2364fbf71
   317 get_files_to_check()
   317 get_files_to_check()
   318 {
   318 {
   319     py_files=$(find . -name '*.py' -not -path '*/build/*')
   319     py_files=$(find . -name '*.py' -not -path '*/build/*')
   320     if [ "$1" = "--only-changes" ]; then
   320     if [ "$1" = "--only-changes" ]; then
   321         if which hg > /dev/null; then
   321         if which hg > /dev/null; then
   322             echo "Only changes will be checked"
   322             if [ ! -z "$HG_NODE" ]; then
       
   323                 hg_change="--change $HG_NODE"
       
   324                 msg="for commit $HG_NODE"
       
   325             else
       
   326                 hg_change=""
       
   327                 msg="in local repository"
       
   328             fi
       
   329             echo "Only changes ${msg} will be checked"
   323             echo ""
   330             echo ""
   324             py_files=$(hg status -m -a -n -I '**.py')
   331             py_files=$(hg status -m -a -n -I '**.py' $hg_change)
   325             if [ -z "$py_files" ]; then
   332             if [ $? -ne 0 ]; then
   326                 echo "No files to check"
   333                 exit 1;
   327                 exit 0;
       
   328             fi
   334             fi
   329        fi
   335        fi
   330     fi
   336     fi
       
   337     if [ "$1" = "--files-to-check" ]; then
       
   338         list="$2"
       
   339         if [ -z "$list" ]; then
       
   340             echo "--files-to-check requires filename as argument"
       
   341             print_help
       
   342         fi
       
   343         if [ -e "$list" ]; then
       
   344             py_files=$(cat $2 | grep '\.py$')
       
   345         fi
       
   346     fi
       
   347     if [ -z "$py_files" ]; then
       
   348         echo "No files to check"
       
   349         exit 0;
       
   350     fi
       
   351 }
       
   352 
       
   353 
       
   354 print_help()
       
   355 {
       
   356     echo "Usage: check_source.sh [--only-changes | --files-to-check <filename> ]"
       
   357     echo ""
       
   358     echo "By default without arguments script checks all python source files"
       
   359     echo ""
       
   360     echo "--only-changes"
       
   361     echo "                only files with local changes are checked. "
       
   362     echo "                If script is called from mercurial pretxncommit hook,"
       
   363     echo "                then only commited files are checked"
       
   364     echo ""
       
   365     echo "--files-to-check <file.lst>"
       
   366     echo "                script read list of files to check from file.lst"
       
   367 
       
   368     exit 1
   331 }
   369 }
   332 
   370 
   333 main()
   371 main()
   334 {
   372 {
   335     get_files_to_check $1
   373     get_files_to_check $@
   336     compile_checks
   374     compile_checks
   337     pep8_checks_default
   375     pep8_checks_default
   338     # pep8_checks_selected
   376     # pep8_checks_selected
       
   377 
   339     # flake8_checks
   378     # flake8_checks
   340     pylint_checks
   379     pylint_checks
   341     exit $exit_code
   380     exit $exit_code
   342 }
   381 }
   343 
   382 
   344 main $1
   383 [ "$1" = "--help" -o "$1" = "-h" ] && print_help
       
   384 main $@