diff options
author | rare-magma <nun0@posteo.co> | 2022-06-07 20:31:53 +0200 |
---|---|---|
committer | rare-magma <nun0@posteo.co> | 2022-06-07 20:31:53 +0200 |
commit | 98c69b7dacf85b8b25be909b33c333491ae481ad (patch) | |
tree | e05a9cf5e5ab0a41d151d7efcb0c07fce8f13efc | |
parent | b89c1dd748b8ee0913f99cdb16079e0515ae7aba (diff) |
improve and simplify disk type switch
-rw-r--r-- | devices/temp_nix.go | 31 |
1 files 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: } } |