abstract terminal interface

This commit is contained in:
alu
2026-08-07 11:34:01 -07:00
parent 691dba7687
commit 190d068076
10 changed files with 88 additions and 39 deletions
+4 -3
View File
@@ -1,6 +1,7 @@
package drivers
import (
"finally-a-monolithic-linux-hw-monitor/app/common"
"fmt"
"os"
"path/filepath"
@@ -38,20 +39,20 @@ func NewHwmonDriver(expectedDrivers []string) (*HwmonDriver, error) {
return nil, fmt.Errorf("could not find %#v in /sys/class/hwmon", expectedDrivers)
}
func (r *HwmonDriver) Render(console *strings.Builder) error {
func (r *HwmonDriver) Render(term common.Terminal) error {
t, err := r.Read()
if err != nil {
return err
}
temps := t.([]TemperatureSensor)
term.Subheader("Temperature")
fmt.Fprint(console, "--- Temperature ---\033[K\n")
for _, sensor := range temps {
tempC := sensor.TempC
tempF := (tempC * 9 / 5) + 32
// \033[K clears from cursor to end of line (prevents lingering chars)
fmt.Fprintf(console, "%-16s | %.2f °C (%.3f °F)\033[K\n", sensor.Name, tempC, tempF)
term.Print(fmt.Sprintf("%-16s | %.2f °C (%.3f °F)", sensor.Name, tempC, tempF))
}
return nil