Use /usr/lib/os-release if /etc/os-release is missing.
As per os-release spec, /usr/lib/os-release file should be tried if /etc/os-release is missing. http://www.freedesktop.org/software/systemd/man/os-release.html Thanks James Hunt <james.o.hunt@intel.com> and Dimitri John Ledkov <dimitri.j.ledkov@intel.com> for contribution. Close #17174 Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
parent
6dab26120b
commit
2f11790e60
2 changed files with 39 additions and 1 deletions
|
@ -19,13 +19,22 @@ var (
|
|||
|
||||
// file to check to determine Operating System
|
||||
etcOsRelease = "/etc/os-release"
|
||||
|
||||
// used by stateless systems like Clear Linux
|
||||
altOsRelease = "/usr/lib/os-release"
|
||||
)
|
||||
|
||||
// GetOperatingSystem gets the name of the current operating system.
|
||||
func GetOperatingSystem() (string, error) {
|
||||
osReleaseFile, err := os.Open(etcOsRelease)
|
||||
if err != nil {
|
||||
return "", err
|
||||
if !os.IsNotExist(err) {
|
||||
return "", fmt.Errorf("Error opening %s: %v", etcOsRelease, err)
|
||||
}
|
||||
osReleaseFile, err = os.Open(altOsRelease)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("Error opening %s: %v", altOsRelease, err)
|
||||
}
|
||||
}
|
||||
defer osReleaseFile.Close()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue