diff --git a/pkg/parsers/operatingsystem/operatingsystem_unix.go b/pkg/parsers/operatingsystem/operatingsystem_unix.go index 78a24d2a70..442154ef6b 100644 --- a/pkg/parsers/operatingsystem/operatingsystem_unix.go +++ b/pkg/parsers/operatingsystem/operatingsystem_unix.go @@ -3,19 +3,19 @@ package operatingsystem // import "github.com/docker/docker/pkg/parsers/operatingsystem" import ( + "bytes" "errors" - "os/exec" - "strings" + + "golang.org/x/sys/unix" ) // GetOperatingSystem gets the name of the current operating system. func GetOperatingSystem() (string, error) { - cmd := exec.Command("uname", "-s") - osName, err := cmd.Output() - if err != nil { + utsname := &unix.Utsname{} + if err := unix.Uname(utsname); err != nil { return "", err } - return strings.TrimSpace(string(osName)), nil + return string(utsname.Machine[:bytes.IndexByte(utsname.Sysname[:], 0)]), nil } // GetOperatingSystemVersion gets the version of the current operating system, as a string. diff --git a/pkg/platform/architecture_linux.go b/pkg/platform/architecture_linux.go deleted file mode 100644 index a260a23f4f..0000000000 --- a/pkg/platform/architecture_linux.go +++ /dev/null @@ -1,18 +0,0 @@ -// Package platform provides helper function to get the runtime architecture -// for different platforms. -package platform // import "github.com/docker/docker/pkg/platform" - -import ( - "bytes" - - "golang.org/x/sys/unix" -) - -// runtimeArchitecture gets the name of the current architecture (x86, x86_64, …) -func runtimeArchitecture() (string, error) { - utsname := &unix.Utsname{} - if err := unix.Uname(utsname); err != nil { - return "", err - } - return string(utsname.Machine[:bytes.IndexByte(utsname.Machine[:], 0)]), nil -} diff --git a/pkg/platform/architecture_unix.go b/pkg/platform/architecture_unix.go index d51f68698f..d2a1f96872 100644 --- a/pkg/platform/architecture_unix.go +++ b/pkg/platform/architecture_unix.go @@ -1,20 +1,20 @@ -// +build freebsd darwin +// +build !windows // Package platform provides helper function to get the runtime architecture // for different platforms. package platform // import "github.com/docker/docker/pkg/platform" import ( - "os/exec" - "strings" + "bytes" + + "golang.org/x/sys/unix" ) // runtimeArchitecture gets the name of the current architecture (x86, x86_64, i86pc, sun4v, ...) func runtimeArchitecture() (string, error) { - cmd := exec.Command("/usr/bin/uname", "-m") - machine, err := cmd.Output() - if err != nil { + utsname := &unix.Utsname{} + if err := unix.Uname(utsname); err != nil { return "", err } - return strings.TrimSpace(string(machine)), nil + return string(utsname.Machine[:bytes.IndexByte(utsname.Machine[:], 0)]), nil }