From: Andrew Dunstan Date: Wed, 9 May 2018 11:55:23 +0000 (-0400) Subject: Add a script and a config file to run perlcritic X-Git-Tag: REL_11_BETA1~67 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91703ca2144e58d041c132fb7ff06a6d1721e904;p=postgresql 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 --- diff --git a/src/tools/pgperlcritic/perlcriticrc b/src/tools/pgperlcritic/perlcriticrc new file mode 100644 index 0000000000..1059002ad5 --- /dev/null +++ b/src/tools/pgperlcritic/perlcriticrc @@ -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] diff --git a/src/tools/pgperlcritic/pgperlcritic b/src/tools/pgperlcritic/pgperlcritic new file mode 100755 index 0000000000..40d006bef6 --- /dev/null +++ b/src/tools/pgperlcritic/pgperlcritic @@ -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