github.com/rumpl/bof@v23.0.0-rc.2+incompatible/pkg/parsers/kernel/kernel_unix.go (about) 1 //go:build linux || freebsd || openbsd 2 // +build linux freebsd openbsd 3 4 // Package kernel provides helper function to get, parse and compare kernel 5 // versions for different platforms. 6 package kernel // import "github.com/docker/docker/pkg/parsers/kernel" 7 8 import ( 9 "github.com/sirupsen/logrus" 10 "golang.org/x/sys/unix" 11 ) 12 13 // GetKernelVersion gets the current kernel version. 14 func GetKernelVersion() (*VersionInfo, error) { 15 uts, err := uname() 16 if err != nil { 17 return nil, err 18 } 19 20 // Remove the \x00 from the release for Atoi to parse correctly 21 return ParseRelease(unix.ByteSliceToString(uts.Release[:])) 22 } 23 24 // CheckKernelVersion checks if current kernel is newer than (or equal to) 25 // the given version. 26 func CheckKernelVersion(k, major, minor int) bool { 27 if v, err := GetKernelVersion(); err != nil { 28 logrus.Warnf("error getting kernel version: %s", err) 29 } else { 30 if CompareKernelVersion(*v, VersionInfo{Kernel: k, Major: major, Minor: minor}) < 0 { 31 return false 32 } 33 } 34 return true 35 }