diff --git a/misc/api.func b/misc/api.func index e4f9d9bf0..783e03909 100644 --- a/misc/api.func +++ b/misc/api.func @@ -407,14 +407,19 @@ detect_ram() { if command -v dmidecode &>/dev/null; then # Get configured memory speed (actual running speed) - RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Configured Memory Speed:" | grep -oE "[0-9]+" | head -1) + RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Configured Memory Speed:" | grep -oE "[0-9]+" | head -1 || true) # Fallback to Speed: if Configured not available if [[ -z "$RAM_SPEED" ]]; then - RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Speed:" | grep -oE "[0-9]+" | head -1) + RAM_SPEED=$(dmidecode -t memory 2>/dev/null | grep -m1 "Speed:" | grep -oE "[0-9]+" | head -1 || true) fi fi + # Ensure RAM_SPEED is a valid integer (PocketBase stores it as integer) + if [[ -z "$RAM_SPEED" || ! "$RAM_SPEED" =~ ^[0-9]+$ ]]; then + RAM_SPEED=0 + fi + export RAM_SPEED } @@ -509,7 +514,7 @@ post_to_api() { "gpu_vendor": "${gpu_vendor}", "gpu_model": "${gpu_model}", "gpu_passthrough": "${gpu_passthrough}", - "ram_speed": "${ram_speed}", + "ram_speed": ${ram_speed:-0}, "repo_source": "${REPO_SOURCE}" } EOF @@ -613,7 +618,7 @@ post_to_api_vm() { "gpu_vendor": "${gpu_vendor}", "gpu_model": "${gpu_model}", "gpu_passthrough": "${gpu_passthrough}", - "ram_speed": "${ram_speed}", + "ram_speed": ${ram_speed:-0}, "repo_source": "${REPO_SOURCE}" } EOF @@ -747,7 +752,7 @@ post_update_to_api() { "gpu_vendor": "${gpu_vendor}", "gpu_model": "${gpu_model}", "gpu_passthrough": "${gpu_passthrough}", - "ram_speed": "${ram_speed}", + "ram_speed": ${ram_speed:-0}, "repo_source": "${REPO_SOURCE}" } EOF @@ -789,7 +794,7 @@ EOF "gpu_vendor": "${gpu_vendor}", "gpu_model": "${gpu_model}", "gpu_passthrough": "${gpu_passthrough}", - "ram_speed": "${ram_speed}", + "ram_speed": ${ram_speed:-0}, "repo_source": "${REPO_SOURCE}" } EOF @@ -886,7 +891,7 @@ categorize_error() { # Signal/Process errors (SIGTERM, SIGPIPE, SIGSEGV) 139 | 141 | 143) echo "signal" ;; - # Shell errors (general error, syntax error) + # Shell errors (general error, syntax error) 1 | 2) echo "shell" ;; # Default - truly unknown