ExQuality.Config (ExQuality v0.2.0)
View SourceLoads and merges configuration from multiple sources.
Configuration is resolved in the following order (later wins):
- Defaults
- Auto-detected tool availability
- Project config file (.quality.exs)
- CLI arguments
Example .quality.exs
[
# Global options
quick: false,
# Override auto-detection: force disable dialyzer
dialyzer: [enabled: false],
# Credo options (enabled: :auto by default)
credo: [
strict: true,
all: false
],
# Doctor options
doctor: [
summary_only: true
]
]Configuration Options
Global Options
quick- Quick mode: skip dialyzer and coverage enforcement (default: false)
Stage Options
Each stage supports:
enabled- :auto (use auto-detection) | true (force enable) | false (force disable)
Stage-specific options:
compile.warnings_as_errors- Treat warnings as errors (default: true)credo.strict- Use strict mode (default: true)credo.all- Check all files (default: false)dependencies.check_unused- Check for unused dependencies (default: true)dependencies.audit- Run security audit if available (default: :auto)doctor.summary_only- Show only summary (default: false)
Summary
Functions
Loads configuration with auto-detection and overrides.
Determines if a stage should run based on config.
Functions
Loads configuration with auto-detection and overrides.
Resolution order (later wins):
- Defaults
- Auto-detected tool availability
- .quality.exs file
- CLI arguments
Examples
# Load with CLI options
config = ExQuality.Config.load(quick: true, skip_dialyzer: true)
# Load with defaults only
config = ExQuality.Config.load()
Determines if a stage should run based on config.
enabled: :auto→ use detected availabilityenabled: true→ force enable (will error if tool missing)enabled: false→ force disable
Examples
config = ExQuality.Config.load()
ExQuality.Config.stage_enabled?(config, :credo)
#=> true (if credo is installed)
config = ExQuality.Config.load(skip_credo: true)
ExQuality.Config.stage_enabled?(config, :credo)
#=> false