Files
Linux-Server-Management-Too…/tools
cschantz f07debf5c6 Add CHECK 31 to QA script: detect 'local' outside functions
Issue:
- User encountered "local: can only be used in a function" error
  in analyze-historical-attacks.sh (lines 190, 203)
- The script used 'local' keyword in a code block redirected to a file
- This is a CRITICAL runtime error that prevents script execution
- QA script didn't catch this issue

Solution:
Added CHECK 31 to toolkit-qa-check.sh:
- Detects 'local' keyword used outside function context
- Tracks function boundaries using brace depth counting
- Reads entire file line-by-line to maintain state
- Skips comments to avoid false positives
- Severity: CRITICAL (script fails at runtime)

Implementation:
- Function detection: matches `function_name()` pattern
- Brace tracking: counts { and } to detect function exit
- State machine: in_function flag toggles based on brace depth
- Reports line number and file for easy fixing

Testing:
 Correctly identifies 'local' outside functions
 Does NOT flag 'local' inside functions (no false positives)
 Found existing issues in test files

Example error caught:
  /tmp/test-local-outside-function.sh:4|'local' keyword outside function

This check prevents runtime failures and makes QA more comprehensive.
2025-12-13 02:32:12 -05:00
..