summaryrefslogtreecommitdiff
path: root/pkg/parsers/operatingsystem/windows_os_string.go
blob: 41240b46e6410c41a14ed296e3822c3e971db74e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package operatingsystem // import "github.com/docker/docker/pkg/parsers/operatingsystem"

import (
	"fmt"
	"strings"
)

type windowsOSRelease struct {
	IsServer       bool
	DisplayVersion string
	Build          uint32
	UBR            uint64
}

// String formats the OS release data similar to what is displayed by
// winver.exe.
func (r *windowsOSRelease) String() string {
	var b strings.Builder
	b.WriteString("Microsoft Windows")
	if r.IsServer {
		b.WriteString(" Server")
	}
	if r.DisplayVersion != "" {
		b.WriteString(" Version ")
		b.WriteString(r.DisplayVersion)
	}
	_, _ = fmt.Fprintf(&b, " (OS Build %d", r.Build)
	if r.UBR > 0 {
		_, _ = fmt.Fprintf(&b, ".%d", r.UBR)
	}
	b.WriteByte(')')
	return b.String()
}