()
| 391 | var osRelease string |
| 392 | |
| 393 | func unameKernelRelease() string { |
| 394 | if runtime.GOOS == "windows" { |
| 395 | return "-" |
| 396 | } |
| 397 | ctx, cancelFn := context.WithTimeout(context.Background(), 2*time.Second) |
| 398 | defer cancelFn() |
| 399 | out, err := exec.CommandContext(ctx, "uname", "-r").CombinedOutput() |
| 400 | if err != nil { |
| 401 | log.Printf("error executing uname -r: %v\n", err) |
| 402 | return "-" |
| 403 | } |
| 404 | releaseStr := strings.TrimSpace(string(out)) |
| 405 | m := releaseRegex.FindStringSubmatch(releaseStr) |
| 406 | if len(m) < 2 { |
| 407 | log.Printf("invalid uname -r output: [%s]\n", releaseStr) |
| 408 | return "-" |
| 409 | } |
| 410 | return m[1] |
| 411 | } |
| 412 | |
| 413 | func UnameKernelRelease() string { |
| 414 | osReleaseOnce.Do(func() { |
no test coverage detected