diff options
Diffstat (limited to 'src/tools/perlcheck')
-rw-r--r-- | src/tools/perlcheck/find_perl_files | 14 | ||||
-rw-r--r-- | src/tools/perlcheck/perlcriticrc | 24 | ||||
-rwxr-xr-x | src/tools/perlcheck/pgperlcritic | 20 | ||||
-rwxr-xr-x | src/tools/perlcheck/pgperlsyncheck | 16 |
4 files changed, 74 insertions, 0 deletions
diff --git a/src/tools/perlcheck/find_perl_files b/src/tools/perlcheck/find_perl_files new file mode 100644 index 0000000..fd99dab --- /dev/null +++ b/src/tools/perlcheck/find_perl_files @@ -0,0 +1,14 @@ +# src/tools/perlcheck/find_perl_files + +# shell function to find all perl files in the source tree + +find_perl_files () { + { + # take all .pl and .pm files + find . -type f -name '*.p[lm]' -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 | grep -v '^\./\.git/' +} diff --git a/src/tools/perlcheck/perlcriticrc b/src/tools/perlcheck/perlcriticrc new file mode 100644 index 0000000..e230111 --- /dev/null +++ b/src/tools/perlcheck/perlcriticrc @@ -0,0 +1,24 @@ +###################################################################### +# +# src/tools/perlcheck/perlcriticrc +# +# config file for perlcritic for Postgres project +# +##################################################################### + +severity = 5 + +theme = core + +# print the policy name as well as the normal output +verbose = %f: %m at line %l, column %c. %e. ([%p] Severity: %s)\n + +# Note: for policy descriptions see https://metacpan.org/release/Perl-Critic + + +# allow octal constants with leading zeros +[-ValuesAndExpressions::ProhibitLeadingZeros] + +# insist on use of the warnings pragma +[TestingAndDebugging::RequireUseWarnings] +severity = 5 diff --git a/src/tools/perlcheck/pgperlcritic b/src/tools/perlcheck/pgperlcritic new file mode 100755 index 0000000..1c2f787 --- /dev/null +++ b/src/tools/perlcheck/pgperlcritic @@ -0,0 +1,20 @@ +#!/bin/sh + +# src/tools/perlcheck/pgperlcritic + +test -f src/tools/perlcheck/perlcriticrc || { + echo could not find src/tools/perlcheck/perlcriticrc + exit 1 + } + +set -e + +# set this to override default perlcritic program: +PERLCRITIC=${PERLCRITIC:-perlcritic} + +. src/tools/perlcheck/find_perl_files + +find_perl_files | xargs $PERLCRITIC \ + --quiet \ + --program-extensions .pl \ + --profile=src/tools/perlcheck/perlcriticrc diff --git a/src/tools/perlcheck/pgperlsyncheck b/src/tools/perlcheck/pgperlsyncheck new file mode 100755 index 0000000..74f1584 --- /dev/null +++ b/src/tools/perlcheck/pgperlsyncheck @@ -0,0 +1,16 @@ +#!/bin/sh + +# script to detect compile time errors and warnings in all perl files + +INCLUDES="-I src/tools/msvc -I src/tools/msvc/dummylib -I src/backend/catalog" +INCLUDES="-I src/test/perl -I src/backend/utils/mb/Unicode $INCLUDES" +INCLUDES="-I src/bin/pg_rewind -I src/test/ssl $INCLUDES" + +set -e + +. src/tools/perlcheck/find_perl_files + +# for zsh +setopt shwordsplit 2>/dev/null || true + +find_perl_files | xargs -L 1 perl $INCLUDES -cw 2>&1 | grep -v OK |