github.com/simpleiot/simpleiot@v0.18.3/system/os_version_linux.go (about)

     1  package system
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/blang/semver/v4"
     8  )
     9  
    10  const releaseFilePath = "/etc/os-release"
    11  
    12  // ReadOSVersion reads `releaseFilePath` and parses VERSION_ID into a `Version` struct
    13  func ReadOSVersion(field string) (imgRelease semver.Version, err error) {
    14  	// Read `releaseFilePath` into []byte
    15  	data, err := os.ReadFile(releaseFilePath)
    16  	if err != nil {
    17  		return
    18  	}
    19  
    20  	imgRelease, err = parseVersion(data, field)
    21  
    22  	if err != nil {
    23  		err = fmt.Errorf("searching %v, got: %v", releaseFilePath, err)
    24  	}
    25  	return
    26  }