misc: add GetKernelVersion()

Allows re-using across different packages
This commit is contained in:
Clayton Craft
2023-02-12 13:29:11 -08:00
parent 73fd85f68c
commit 4176a8a661

View File

@@ -4,9 +4,11 @@
package misc package misc
import ( import (
"fmt"
"log" "log"
"os" "os"
"path/filepath" "path/filepath"
"strings"
"time" "time"
"golang.org/x/sys/unix" "golang.org/x/sys/unix"
@@ -86,3 +88,29 @@ func TimeFunc(start time.Time, name string) {
elapsed := time.Since(start) elapsed := time.Since(start)
log.Printf("%s completed in: %s", name, elapsed) log.Printf("%s completed in: %s", name, elapsed)
} }
func getKernelReleaseFile() (string, error) {
files, _ := filepath.Glob("/usr/share/kernel/*/kernel.release")
// only one kernel flavor supported
if len(files) != 1 {
return "", fmt.Errorf("only one kernel release/flavor is supported, found: %q", files)
}
return files[0], nil
}
func GetKernelVersion() (string, error) {
var version string
releaseFile, err := getKernelReleaseFile()
if err != nil {
return version, err
}
contents, err := os.ReadFile(releaseFile)
if err != nil {
return version, err
}
return strings.TrimSpace(string(contents)), nil
}