From 98c69b7dacf85b8b25be909b33c333491ae481ad Mon Sep 17 00:00:00 2001 From: rare-magma Date: Tue, 7 Jun 2022 20:31:53 +0200 Subject: [PATCH] improve and simplify disk type switch --- devices/temp_nix.go | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/devices/temp_nix.go b/devices/temp_nix.go index db2af8b..622f0a2 100644 --- a/devices/temp_nix.go +++ b/devices/temp_nix.go @@ -4,8 +4,8 @@ package devices import ( + "fmt" "log" - "regexp" smart "github.com/anatol/smart.go" "github.com/jaypipes/ghw" @@ -40,28 +40,23 @@ func getTemps(temps map[string]int) map[string]error { return nil } - var sata = regexp.MustCompile(`sd.?`) - var nvme = regexp.MustCompile(`nvme*`) for _, disk := range block.Disks { - switch t := disk.Name; { - case sata.MatchString(t): - dev, err := smart.OpenSata("/dev/" + disk.Name) - if err != nil { - break - } - sm, _ := dev.ReadSMARTData() - for _, attr := range sm.Attrs { + dev, err := smart.Open("/dev/" + disk.Name) + if err != nil { + fmt.Println(err) + continue + } + switch sm := dev.(type) { + case *smart.SataDevice: + data, _ := sm.ReadSMARTData() + for _, attr := range data.Attrs { if attr.Id == 194 { temps[disk.Name+"_"+disk.Model] = int(attr.Value) } } - case nvme.MatchString(t): - dev, err := smart.OpenNVMe("/dev/" + disk.Name) - if err != nil { - break - } - sm, _ := dev.ReadSMART() - temps[disk.Name+"_"+disk.Model] = int(sm.Temperature) + case *smart.NVMeDevice: + data, _ := sm.ReadSMART() + temps[disk.Name+"_"+disk.Model] = int(data.Temperature) default: } }