#!/bin/sh
set -e -u

export LC_ALL=C

global_exclude='::RequireRcsKeywords'
tests_exclude='::(RequireCarping|ProhibitAutomaticExportation|ProhibitComplexRegexes|RequireEndWithOne|RequireExplicitPackage)'

private_exclude='::(RequireCarping|RequireEndWithOne|RequireExplicitPackage)'
private_perl=$(grep -l '^#.*[ /]perl' private/[!_]*)

here=$(dirname "$0")
cd "$here/.."

perl -n -e '/^\[-?/ and s/// and s/\]$// and print $_' .perlcriticrc \
| sort -c

target=$(mktemp -t mbank-cli.perlcritic.XXXXXX)

run_perlcritic()
{
    perlcritic --exclude "$global_exclude" "$@" >> "$target" && return
    rc=$?
    [ $rc -eq 2 ] || exit $rc
}

run_perlcritic "$@" mbank-cli
run_perlcritic "$@" \
    --exclude "$tests_exclude" \
    t/*.t t/*.pm
run_perlcritic "$@" \
    --exclude "$private_exclude" \
    $private_perl
rc=0
grep -v ' source OK$' "$target" && rc=1
rm -f "$target"
exit $rc

# vim:ts=4 sts=4 sw=4 et
