622f100250
Adds caching system for scanner installation detection to avoid repeated calls to is_*_installed() functions, which perform command lookups and file checks on each invocation. Changes: 1. Added cache variables for each scanner (IMUNIFY/CLAMAV/MALDET/RKHUNTER_INSTALLED_CACHE) 2. Added cache_scanner_detection() function to populate cache once 3. Added is_scanner_cached() wrapper for cache-aware queries 4. Initialize cache in main() function after initial detect_scanners() 5. Updated menu functions to use cached checks: - maldet_scan_submenu() (displayed in loop, multiple checks per session) - maldet_launch_scan() (called repeatedly during menu navigation) - maldet_update_signatures() (status check before operations) - maldet_view_results() (status check before operations) Performance Impact: - Reduces 4+ is_*_installed() calls per menu navigation cycle to 1 - Typical usage: User navigates through menus 5-10 times = 20-40 redundant checks eliminated - Each direct check involves: command -v lookup + optional file stat check - With caching: Subsequent checks are array lookups (O(1) vs O(n)) Status: ✓ Syntax validated, caching integrated into menu system