Files
Linux-Server-Management-Too…/modules/performance
cschantz 443e246bf0 Fix hardware health check to return to menu instead of exiting
Problem:
When run from the launcher menu, the hardware health check script
would exit the entire toolkit after completion instead of returning
to the menu. This was frustrating for users who wanted to run multiple
operations.

Root Cause:
The script used `exit 0/1/2` at the end to provide severity-based exit
codes for monitoring system integration. However, this caused the script
to terminate the parent shell when sourced by the launcher.

Solution:
Detect execution context and use appropriate behavior:

1. Standalone Execution (./hardware-health-check.sh):
   - Use `exit` codes (0, 1, 2) for monitoring integration
   - Script terminates as expected for cron/monitoring tools

2. Sourced Execution (called from launcher):
   - Use `return` codes (0, 1, 2) instead of exit
   - Returns control to launcher menu
   - Exit codes still available via $? if launcher wants to check

Detection Method:
  if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
      # Script run directly → use exit
  else
      # Script sourced by launcher → use return
  fi

Changes to modules/performance/hardware-health-check.sh:
- Lines 1840-1854: Added execution context detection
  - Standalone: exit 0/1/2 (monitoring integration)
  - Sourced: return 0/1/2 (back to menu)
- Lines 1857-1863: Only auto-run main if executed directly

Benefits:
 Returns to menu when run from launcher
 Still provides exit codes for monitoring tools
 Best of both worlds - works in all contexts
 No breaking changes to monitoring integration

Testing:
- Standalone: ./hardware-health-check.sh → exits with code
- From launcher: Returns to menu 

User Report: "when the script exists it is not built into taking back
to the menu. it just runs and exits everything once its done"

Status:  FIXED - Now returns to menu properly
2025-12-16 02:54:19 -05:00
..