123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package operatingsystem // import "github.com/docker/docker/pkg/parsers/operatingsystem"
- import (
- "fmt"
- "golang.org/x/sys/windows/registry"
- )
- // GetOperatingSystem gets the name of the current operating system.
- func GetOperatingSystem() (string, error) {
- // Default return value
- ret := "Unknown Operating System"
- k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE)
- if err != nil {
- return ret, err
- }
- defer k.Close()
- pn, _, err := k.GetStringValue("ProductName")
- if err != nil {
- return ret, err
- }
- ret = pn
- ri, _, err := k.GetStringValue("ReleaseId")
- if err != nil {
- return ret, err
- }
- ret = fmt.Sprintf("%s Version %s", ret, ri)
- cbn, _, err := k.GetStringValue("CurrentBuildNumber")
- if err != nil {
- return ret, err
- }
- ubr, _, err := k.GetIntegerValue("UBR")
- if err != nil {
- return ret, err
- }
- ret = fmt.Sprintf("%s (OS Build %s.%d)", ret, cbn, ubr)
- return ret, nil
- }
- // IsContainerized returns true if we are running inside a container.
- // No-op on Windows, always returns false.
- func IsContainerized() (bool, error) {
- return false, nil
- }
|