mirror of
https://github.com/tw93/Mole.git
synced 2026-02-04 22:04:43 +00:00
Prevent follow-up problems caused by empty health checks
This commit is contained in:
@@ -107,13 +107,21 @@ show_optimization_summary() {
|
||||
show_system_health() {
|
||||
local health_json="$1"
|
||||
|
||||
# Parse system health using jq
|
||||
local mem_used=$(echo "$health_json" | jq -r '.memory_used_gb')
|
||||
local mem_total=$(echo "$health_json" | jq -r '.memory_total_gb')
|
||||
local disk_used=$(echo "$health_json" | jq -r '.disk_used_gb')
|
||||
local disk_total=$(echo "$health_json" | jq -r '.disk_total_gb')
|
||||
local disk_percent=$(echo "$health_json" | jq -r '.disk_used_percent')
|
||||
local uptime=$(echo "$health_json" | jq -r '.uptime_days')
|
||||
# Parse system health using jq with fallback to 0
|
||||
local mem_used=$(echo "$health_json" | jq -r '.memory_used_gb // 0' 2>/dev/null || echo "0")
|
||||
local mem_total=$(echo "$health_json" | jq -r '.memory_total_gb // 0' 2>/dev/null || echo "0")
|
||||
local disk_used=$(echo "$health_json" | jq -r '.disk_used_gb // 0' 2>/dev/null || echo "0")
|
||||
local disk_total=$(echo "$health_json" | jq -r '.disk_total_gb // 0' 2>/dev/null || echo "0")
|
||||
local disk_percent=$(echo "$health_json" | jq -r '.disk_used_percent // 0' 2>/dev/null || echo "0")
|
||||
local uptime=$(echo "$health_json" | jq -r '.uptime_days // 0' 2>/dev/null || echo "0")
|
||||
|
||||
# Ensure all values are numeric (fallback to 0)
|
||||
mem_used=${mem_used:-0}
|
||||
mem_total=${mem_total:-0}
|
||||
disk_used=${disk_used:-0}
|
||||
disk_total=${disk_total:-0}
|
||||
disk_percent=${disk_percent:-0}
|
||||
uptime=${uptime:-0}
|
||||
|
||||
# Compact one-line format with icon
|
||||
printf "${ICON_ADMIN} System %.0f/%.0f GB RAM | %.0f/%.0f GB Disk (%.0f%%) | Uptime %.0fd\n" \
|
||||
@@ -372,6 +380,21 @@ main() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Validate JSON before proceeding
|
||||
if ! echo "$health_json" | jq empty 2>/dev/null; then
|
||||
if [[ -t 1 ]]; then
|
||||
stop_inline_spinner
|
||||
fi
|
||||
echo ""
|
||||
log_error "Invalid system health data format"
|
||||
echo -e "${YELLOW}Tip:${NC} Check if jq, awk, sysctl, and df commands are available"
|
||||
if [[ "${MO_DEBUG:-}" == "1" ]]; then
|
||||
echo "DEBUG: Generated JSON:"
|
||||
echo "$health_json"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -t 1 ]]; then
|
||||
stop_inline_spinner
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user