summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrare-magma <nun0@posteo.co>2022-06-07 20:31:53 +0200
committerrare-magma <nun0@posteo.co>2022-06-07 20:31:53 +0200
commit98c69b7dacf85b8b25be909b33c333491ae481ad (patch)
treee05a9cf5e5ab0a41d151d7efcb0c07fce8f13efc
parentb89c1dd748b8ee0913f99cdb16079e0515ae7aba (diff)
improve and simplify disk type switch
-rw-r--r--devices/temp_nix.go31
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:
}
}