-
Notifications
You must be signed in to change notification settings - Fork 327
/
osx.go
56 lines (53 loc) · 1.53 KB
/
osx.go
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Copyright (C) 2017 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package device
import "fmt"
// OSXOS converts from an OSX version to a full OS structure.
func OSXOS(major, minor, point int32) *OS {
var name string
switch {
case major == 10 && minor == 11:
name = "El Capitan"
case major == 10 && minor == 10:
name = "Yosemite"
case major == 10 && minor == 9:
name = "Mavericks"
case major == 10 && minor == 8:
name = "Mountain Lion"
case major == 10 && minor == 7:
name = "Lion"
case major == 10 && minor == 6:
name = "Snow Leopard"
case major == 10 && minor == 5:
name = "Leopard"
case major == 10 && minor == 4:
name = "Tiger"
case major == 10 && minor == 3:
name = "Panther"
case major == 10 && minor == 2:
name = "Jaguar"
case major == 10 && minor == 1:
name = "Puma"
default:
name = "OSX"
}
return &OS{
Kind: OSX,
Build: fmt.Sprintf("%s %d.%d.%d", name, major, minor, point),
Name: name,
MajorVersion: major,
MinorVersion: minor,
PointVersion: point,
}
}