12345678910111213141516171819202122232425262728293031323334353637 |
- // +build solaris,cgo
- package operatingsystem
- /*
- #include <zone.h>
- */
- import "C"
- import (
- "bytes"
- "errors"
- "io/ioutil"
- )
- var etcOsRelease = "/etc/release"
- // GetOperatingSystem gets the name of the current operating system.
- func GetOperatingSystem() (string, error) {
- b, err := ioutil.ReadFile(etcOsRelease)
- if err != nil {
- return "", err
- }
- if i := bytes.Index(b, []byte("\n")); i >= 0 {
- b = bytes.Trim(b[:i], " ")
- return string(b), nil
- }
- return "", errors.New("release not found")
- }
- // IsContainerized returns true if we are running inside a container.
- func IsContainerized() (bool, error) {
- if C.getzoneid() != 0 {
- return true, nil
- }
- return false, nil
- }
|