# Perl::Critic configuration for freenas-proxmox
# Severity scale: 1 (brutal) → 5 (gentle). We start at 4 and tighten over time.
# Run: perlcritic --profile .perlcriticrc perl5/PVE/Storage/Custom/TrueNAS.pm

severity  = 4
theme     = core
verbose   = %f:%l:%c  [%p] %m\n

# ── Rules currently disabled ─────────────────────────────────────────────────
# These are known issues being fixed in Phase 2 (code hardening).
# Remove entries here as the underlying code is fixed.

# eval { } block is fine; only string eval is risky — keep disabled
[-BuiltinFunctions::ProhibitStringyEval]

# Postfix conditionals (if/unless at end of line) — style preference, keep
[-ControlStructures::ProhibitPostfixControls]

# TrueNAS.pm has necessarily large subs (PVE plugin interface methods)
[-Subroutines::ProhibitExcessComplexity]

# our $VERSION and our $state are intentional package-level declarations
[-Variables::ProhibitPackageVars]

# ── Rules with custom settings ────────────────────────────────────────────────
[InputOutput::RequireCheckedSyscalls]
functions = :builtins
exclude_functions = print say warn

[ValuesAndExpressions::ProhibitMagicNumbers]
allowed_values = 0 1 2 200 201 204 302 307

[Subroutines::ProhibitBuiltinHomonyms]
severity = 5
