This is a purego port of the Darwin sensors package from gopsutil, which means it's cgo-free.
How to use
package main
import (
"fmt"
"sort"
"github.com/uubulb/darwinsmc"
)
type SensorTemperature struct {
Name string
Temperature float64
}
func main() {
sensorMap, err := darwinsmc.GetThermals()
if err != nil {
fmt.Printf("GetThermals error: %v\n", err)
return
}
tempStat := []SensorTemperature{}
for key, value := range sensorMap {
if value > 0 {
tempStat = append(tempStat, SensorTemperature{
Name: key,
Temperature: value,
})
}
}
sort.Slice(tempStat, func(i, j int) bool {
return tempStat[i].Name < tempStat[j].Name
})
fmt.Println("Sorted struct:", tempStat)
}