# ShellCheck Configuration for Infrastructure Provisioning Project
# Focuses on functional issues, disables non-critical style warnings
# This configuration prioritizes bug detection over style enforcement

# Enable all optional checks initially
enable=all

# Disable non-functional and unfixable warnings
# Style issues that don't affect functionality:
# Info-level warnings that are numerous and hard to fix automatically:
# Monorepo source following issues that may not be resolvable:
disable=SC1020,SC1072,SC1073,SC1090,SC1091,SC2004,SC2016,SC2024,SC2034,SC2035,SC2038,SC2046,SC2064,SC2076,SC2086,SC2129,SC2153,SC2154,SC2155,SC2196,SC2231,SC2238,SC2248,SC2249,SC2250,SC2292,SC2310,SC2312,SC2315,SC2316,SC2317,SC2318,SC2319,SC2329

# SC1090/SC1091 - Can't follow source files (common in monorepos with dynamic includes)
# SC2024 - Invalid operators (14 instances, requires investigation)
# SC2046 - Quote to avoid word splitting (9 instances, requires refactoring)
# SC2086 - Double quote to prevent globbing (info-level, 289 instances, risky to auto-fix)
# SC2129 - Non-numeric array index (4 instances, style issue)
# SC2155 - Declare and assign separately (51 instances, requires manual refactoring)
# SC2231 - Quote expansions in globs (info-level, 2 instances, similar to SC2086)
# SC2238 - Redirects in loops (4 instances, edge case)
# SC2250 - Prefer putting braces around variable references (style only)
# SC2292 - Prefer to avoid negated test conditions (style preference)
# SC2310 - Functions in if conditions (info-level, 54 instances, requires refactoring)
# SC2312 - Comment appears to reference variable (false positives in comments)
# SC2248 - Prefer double quoting (style, handled by SC2086)
# SC2034 - Unused variables (development markers)
# SC2317 - Unreachable code (may be intentional)
# SC2249 - Prefer [[ ]] over [ ] (style preference in POSIX scripts)
# SC2315-2319 - Reserved names and other style issues

# Keep enabled - these are critical functional issues that matter:
# SC2154 - Variable referenced but not assigned (115 instances)
# SC2155 - Declare and assign separately to avoid masking return values
# SC2046 - Quote to avoid word splitting
# SC2162 - read without -r may cause backslashes to be lost (FIXED - 9 instances)
# SC2164 - cd should have || exit (FIXED - 12 instances)
# SC2231 - Quote expansions to avoid globbing
# SC2024 - Operator used without proper escaping

# Source path for sourced files
source-path=SCRIPTDIR

# Severity levels: error, warning, info, style
severity=warning

# Format: gcc, json, json1, quiet
format=gcc

# Shell dialect (bash, sh, ksh, etc)
shell=bash
