]> granicus.if.org Git - postgresql/commitdiff
Add a script and a config file to run perlcritic
authorAndrew Dunstan <andrew@dunslane.net>
Wed, 9 May 2018 11:55:23 +0000 (07:55 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Wed, 9 May 2018 11:55:23 +0000 (07:55 -0400)
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

src/tools/pgperlcritic/perlcriticrc [new file with mode: 0644]
src/tools/pgperlcritic/pgperlcritic [new file with mode: 0755]

diff --git a/src/tools/pgperlcritic/perlcriticrc b/src/tools/pgperlcritic/perlcriticrc
new file mode 100644 (file)
index 0000000..1059002
--- /dev/null
@@ -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 (executable)
index 0000000..40d006b
--- /dev/null
@@ -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