| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package installationinfo
- import (
- "bufio"
- "errors"
- "os"
- "runtime"
- "strings"
- )
- type runtimeInfo struct {
- OS string
- OSReleasePrettyName string
- Arch string
- InContainer bool
- LastBrowserUserAgent string
- }
- func isInContainer() bool {
- if _, err := os.Stat("/.dockerenv"); errors.Is(err, os.ErrNotExist) {
- return false
- }
- return true
- }
- func getOsReleasePrettyName() string {
- handle, err := os.Open("/etc/os-release")
- if err != nil {
- return ""
- }
- scanner := bufio.NewScanner(handle)
- scanner.Split(bufio.ScanLines)
- for scanner.Scan() {
- line := scanner.Text()
- if strings.Contains(line, "PRETTY_NAME") {
- return line
- }
- }
- handle.Close()
- return "notfound"
- }
- var Runtime = &runtimeInfo{
- OS: runtime.GOOS,
- Arch: runtime.GOARCH,
- InContainer: isInContainer(),
- OSReleasePrettyName: getOsReleasePrettyName(),
- }
|