diff options
Diffstat (limited to 'devices/temp_nix.go')
-rw-r--r-- | devices/temp_nix.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/devices/temp_nix.go b/devices/temp_nix.go new file mode 100644 index 0000000..0015e1d --- /dev/null +++ b/devices/temp_nix.go @@ -0,0 +1,30 @@ +// +build linux darwin + +package devices + +import ( + "github.com/shirou/gopsutil/host" +) + +func init() { + devs() // Populate the sensorMap + RegisterTemp(getTemps) + RegisterDeviceList(Temperatures, devs, defs) +} + +func getTemps(temps map[string]int) map[string]error { + sensors, err := host.SensorsTemperatures() + if err != nil { + return map[string]error{"gopsutil host": err} + } + for _, sensor := range sensors { + label := sensorMap[sensor.SensorKey] + if _, ok := temps[label]; ok { + temps[label] = int(sensor.Temperature) + } + } + return nil +} + +// Optimization to avoid string manipulation every update +var sensorMap map[string]string |