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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
#!/bin/bash
# -*- coding: utf-8 -*-
###############################################################################
#
# Project: pgRouting
# Purpose: (Interactive) script to lint C and C++ code
# Author: Vicky Vergara <vicky_vergara@hotmail.com>
#
###############################################################################
# Copyright (c) 2016, Vicky Vergara <vicky_vergara@hotmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
###############################################################################
set -e
if ! test -d code_linter; then
# Get our fork of codespell that adds --words-white-list and full filename support for -S option
mkdir code_linter
pushd code_linter || exit 1
git clone --branch develop https://github.com/cpplint/cpplint
# cd styleguide || exit 1
# git checkout gh-pages
popd || exit 1
ls code_linter
ls code_linter/cpplint
echo code_linter installed
fi
DIRECTORY="$1"
INCLUDE_ORDER="
-build/include_order:src/cpp_common/pgdata_getters.cpp,
-build/include_order:include/cpp_common/get_data.hpp,
-build/include_order:src/dijkstra/shortestPath_process.cpp,
-build/include_order:src/metrics/metrics_process.cpp,
-build/include_order:src/ordering/ordering_process.cpp,
-build/include_order:src/allpairs/allpairs_process.cpp"
if test -z "$DIRECTORY"; then
echo "--------------------"
echo "------ *.c ------"
echo "--------------------"
code_linter/cpplint/cpplint.py --extensions=c --linelength=120 --filter=-readability/casting src/*/*.c
echo "--------------------"
echo "------ *.cpp ------"
echo "--------------------"
code_linter/cpplint/cpplint.py --linelength=120 \
--filter=-readability/nolint,-runtime/references,-whitespace/indent_namespace,"${INCLUDE_ORDER}" \
--linelength=120 src/*/*.cpp
echo "--------------------"
echo "------ HEADERS ------"
echo "--------------------"
code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 \
--filter=-runtime/references,-whitespace/indent_namespace,"${INCLUDE_ORDER}" \
include/*/*.h* \
include/*/*/*.h*
else
if [ "$DIRECTORY" = "h" ]; then
echo "--------------------"
echo "------ IN PLACE HEADERS ------"
echo "--------------------"
code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 \
--filter=-runtime/references,-whitespace/indent_namespace,"${INCLUDE_ORDER}" \
include/*/*.h* \
include/*/*/*.h*
else
echo "--------------------"
echo "------ *.c ------"
echo "--------------------"
code_linter/cpplint/cpplint.py --extensions=c --linelength=120 \
--filter=-readability/casting \
src/"$DIRECTORY"/*.c
echo "--------------------"
echo "------ *.cpp ------"
echo "--------------------"
code_linter/cpplint/cpplint.py --linelength=120 \
--filter=-runtime/references,-whitespace/indent_namespace,"${INCLUDE_ORDER}" \
src/"$DIRECTORY"/*.cpp
echo "--------------------"
echo "------ C HEADER ------"
echo "--------------------"
code_linter/cpplint/cpplint.py \
include/drivers/"$DIRECTORY"/*.h \
include/c_types/"$DIRECTORY"/*.h
echo "--------------------"
echo "------ C++ HEADER ------"
echo "--------------------"
code_linter/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --linelength=120 \
--filter=-runtime/references,-whitespace/indent_namespace,"${INCLUDE_ORDER}" \
include/"$DIRECTORY"/*.h*
fi
fi
|