From 133b68ab400b45214994e9043b68fec40c4ac436 Mon Sep 17 00:00:00 2001 From: reachableceo Date: Tue, 1 Sep 2026 18:22:52 -0500 Subject: [PATCH] fix(sensors): numeric parser anchors on degree symbol (label-digit bug) [#618] --- dcinfra/sensors/temper/lmsensors-extend.sh | 2 +- tests/unit/lmsensors-numeric.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dcinfra/sensors/temper/lmsensors-extend.sh b/dcinfra/sensors/temper/lmsensors-extend.sh index 9b10699..c8f5a06 100644 --- a/dcinfra/sensors/temper/lmsensors-extend.sh +++ b/dcinfra/sensors/temper/lmsensors-extend.sh @@ -50,7 +50,7 @@ numeric_pick() { [[ "$pick" =~ $num_re ]] && { printf '%s\n' "$pick"; return 0; } done if [[ -n "$native" ]]; then - pick="$(grep -oE '\-?[0-9]+(\.[0-9]+)?' <<<"$native" | head -1)" + pick="$(grep -oE "\-?[0-9]+(\.[0-9]+)?°C" <<<"$native" | head -1)"; pick="${pick%°C}" [[ "$pick" =~ $num_re ]] && { printf '%s\n' "$pick"; return 0; } fi return 1 diff --git a/tests/unit/lmsensors-numeric.sh b/tests/unit/lmsensors-numeric.sh index 2fa17b2..c0a44d6 100644 --- a/tests/unit/lmsensors-numeric.sh +++ b/tests/unit/lmsensors-numeric.sh @@ -35,7 +35,7 @@ test_numeric_falls_back_internal() { } test_numeric_uses_first_line_value() { - if [[ "$(numeric_pick "" "" "+27.5°C")" == "27.5" ]]; then + if [[ "$(numeric_pick "" "" "temp1: +27.5°C (high = +84.0°C)")" == "27.5" ]]; then echo "✅ numeric_pick parses first native temp" else echo "❌ numeric_pick native parse broken: got '$(numeric_pick "" "" "+27.5°C")'"