Add a script and a config file to run perlcritic

This is similar to what we do to run perltidy. For now we only run at
severity level 5. Over time we can improve our perl code and reduce the
severity level.

Discussion: https://postgr.es/m/86aa2a3a-0c68-21fb-9560-84ad6914d561@2ndQuadrant.com
This commit is contained in:
Andrew Dunstan 2018-05-09 07:55:23 -04:00
parent cb5d942959
commit 91703ca214
2 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,14 @@
######################################################################
#
# src/tools/pgperlcritic/perlcriticrc
#
# config file for perlcritic for Postgres project
#
#####################################################################
severity = 5
theme = core
# allow octal constants with leading zeros
[-ValuesAndExpressions::ProhibitLeadingZeros]

View File

@ -0,0 +1,28 @@
#!/bin/sh
# src/tools/pgperlcritic/pgperlcritic
test -f src/tools/pgperlcritic/perlcriticrc || {
echo could not find src/tools/pgperlcritic/perlcriticrc
exit 1
}
set -e
# set this to override default perlcritic program:
PERLCRITIC=${PERLCRITIC:-perlcritic}
# locate all Perl files in the tree
{
# take all .pl and .pm files
find . -type f -a \( -name '*.pl' -o -name '*.pm' \) -print
# take executable files that file(1) thinks are perl files
find . -type f -perm -100 -exec file {} \; -print |
egrep -i ':.*perl[0-9]*\>' |
cut -d: -f1
} |
sort -u |
xargs $PERLCRITIC \
--quiet \
--program-extensions .pl \
--profile=src/tools/pgperlcritic/perlcriticrc