summaryrefslogtreecommitdiffstats
path: root/devices/temp_nix.go
diff options
context:
space:
mode:
Diffstat (limited to 'devices/temp_nix.go')
-rw-r--r--devices/temp_nix.go30
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