mirror of
https://github.com/jmagar/unraid-mcp.git
synced 2026-03-02 00:04:45 -08:00
fix: harden shell scripts with error handling and null guards
- dashboard.sh: Add // [] jq null guard on .data.array.disks[] (L176-177) Resolves review thread PRRT_kwDOO6Hdxs5uvO21 - dashboard.sh: Default NAME to server key when env var unset (L221) Resolves review thread PRRT_kwDOO6Hdxs5uvO22 - unraid-query.sh: Check curl exit code, empty response, and JSON validity before piping to jq (L112-129) Resolves review thread PRRT_kwDOO6Hdxs5uvO24 - disk-health.sh: Guard against missing query script and invalid responses Resolves review thread PRRT_kwDOO6Hdxs5uvKrh
This commit is contained in:
@@ -173,8 +173,8 @@ process_server() {
|
||||
echo "" >> "$OUTPUT_FILE"
|
||||
echo "### Health" >> "$OUTPUT_FILE"
|
||||
|
||||
HOT_DISKS=$(echo "$RESPONSE" | jq -r '.data.array.disks[] | select(.temp > 45) | "- ⚠️ \(.name): \(.temp)°C (HIGH)"')
|
||||
DISK_ERRORS=$(echo "$RESPONSE" | jq -r '.data.array.disks[] | select(.numErrors > 0) | "- ❌ \(.name): \(.numErrors) errors"')
|
||||
HOT_DISKS=$(echo "$RESPONSE" | jq -r '(.data.array.disks // [])[] | select(.temp > 45) | "- ⚠️ \(.name): \(.temp)°C (HIGH)"')
|
||||
DISK_ERRORS=$(echo "$RESPONSE" | jq -r '(.data.array.disks // [])[] | select(.numErrors > 0) | "- ❌ \(.name): \(.numErrors) errors"')
|
||||
|
||||
if [ -z "$HOT_DISKS" ] && [ -z "$DISK_ERRORS" ]; then
|
||||
echo "- ✅ All disks healthy" >> "$OUTPUT_FILE"
|
||||
@@ -218,7 +218,7 @@ for server in "${SERVERS[@]}"; do
|
||||
url_var="UNRAID_${server}_URL"
|
||||
key_var="UNRAID_${server}_API_KEY"
|
||||
|
||||
NAME="${!name_var}"
|
||||
NAME="${!name_var:-$server}"
|
||||
URL="${!url_var}"
|
||||
KEY="${!key_var}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user