go server hardware abstraction, tries to lower the burden of supporting different server vendors.
Example usage:
package main
import (
"fmt"
"github.com/metal-stack/go-hal/detect"
)
func main() {
smcInBand, err := detect.ConnectInBand()
if err != nil {
panic(err)
}
firmware, err := smcInBand.Firmware()
if err != nil {
panic(err)
}
fmt.Println(firmware)
// UEFI
err = smcInBand.PowerOff()
}