small fix

This commit is contained in:
Yan Lin 2025-10-10 01:10:47 +02:00
parent f04897fffd
commit 4e4294d334

View file

@ -60,14 +60,14 @@ in
${concatStringsSep "\n" (mapAttrsToList (device: name: '' ${concatStringsSep "\n" (mapAttrsToList (device: name: ''
if [[ -e "${device}" ]]; then if [[ -e "${device}" ]]; then
# Determine if NVMe # Get health status (using sudo for disk access)
SMART_OPTS="" # Use separate commands for NVMe vs SATA to avoid variable expansion issues
if [[ "${device}" == *"nvme"* ]]; then if [[ "${device}" == *"nvme"* ]]; then
SMART_OPTS="-d nvme" HEALTH_OUTPUT=$(sudo ${pkgs.smartmontools}/bin/smartctl -d nvme -H "${device}" 2>/dev/null)
else
HEALTH_OUTPUT=$(sudo ${pkgs.smartmontools}/bin/smartctl -H "${device}" 2>/dev/null)
fi fi
# Get health status (using sudo for disk access)
HEALTH_OUTPUT=$(sudo ${pkgs.smartmontools}/bin/smartctl $SMART_OPTS -H "${device}" 2>/dev/null)
if HEALTH=$(echo "$HEALTH_OUTPUT" | ${pkgs.gnugrep}/bin/grep -o "PASSED\|FAILED" | head -1); then if HEALTH=$(echo "$HEALTH_OUTPUT" | ${pkgs.gnugrep}/bin/grep -o "PASSED\|FAILED" | head -1); then
: # HEALTH is set : # HEALTH is set
else else
@ -77,11 +77,12 @@ in
# Get temperature # Get temperature
TEMP="N/A" TEMP="N/A"
if [[ "$HEALTH" == "PASSED" ]]; then if [[ "$HEALTH" == "PASSED" ]]; then
SMART_DATA=$(sudo ${pkgs.smartmontools}/bin/smartctl $SMART_OPTS -A "${device}" 2>/dev/null)
if [[ "${device}" == *"nvme"* ]]; then if [[ "${device}" == *"nvme"* ]]; then
SMART_DATA=$(sudo ${pkgs.smartmontools}/bin/smartctl -d nvme -A "${device}" 2>/dev/null)
TEMP=$(echo "$SMART_DATA" | ${pkgs.gawk}/bin/awk '/^Temperature:/ {print $2}' | head -1) TEMP=$(echo "$SMART_DATA" | ${pkgs.gawk}/bin/awk '/^Temperature:/ {print $2}' | head -1)
[[ -n "$TEMP" && "$TEMP" =~ ^[0-9]+$ ]] && TEMP="''${TEMP}°C" || TEMP="N/A" [[ -n "$TEMP" && "$TEMP" =~ ^[0-9]+$ ]] && TEMP="''${TEMP}°C" || TEMP="N/A"
else else
SMART_DATA=$(sudo ${pkgs.smartmontools}/bin/smartctl -A "${device}" 2>/dev/null)
TEMP=$(echo "$SMART_DATA" | ${pkgs.gawk}/bin/awk '/Temperature_Celsius/ {print $10}' | head -1) TEMP=$(echo "$SMART_DATA" | ${pkgs.gawk}/bin/awk '/Temperature_Celsius/ {print $10}' | head -1)
[[ -n "$TEMP" && "$TEMP" =~ ^[0-9]+$ ]] && TEMP="''${TEMP}°C" || TEMP="N/A" [[ -n "$TEMP" && "$TEMP" =~ ^[0-9]+$ ]] && TEMP="''${TEMP}°C" || TEMP="N/A"
fi fi