windows_os_string.go 722 B

123456789101112131415161718192021222324252627282930313233
  1. package operatingsystem // import "github.com/docker/docker/pkg/parsers/operatingsystem"
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. type windowsOSRelease struct {
  7. IsServer bool
  8. DisplayVersion string
  9. Build uint32
  10. UBR uint64
  11. }
  12. // String formats the OS release data similar to what is displayed by
  13. // winver.exe.
  14. func (r *windowsOSRelease) String() string {
  15. var b strings.Builder
  16. b.WriteString("Microsoft Windows")
  17. if r.IsServer {
  18. b.WriteString(" Server")
  19. }
  20. if r.DisplayVersion != "" {
  21. b.WriteString(" Version ")
  22. b.WriteString(r.DisplayVersion)
  23. }
  24. _, _ = fmt.Fprintf(&b, " (OS Build %d", r.Build)
  25. if r.UBR > 0 {
  26. _, _ = fmt.Fprintf(&b, ".%d", r.UBR)
  27. }
  28. b.WriteByte(')')
  29. return b.String()
  30. }