line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Devel::Platform::Info::Mac; |
2
|
|
|
|
|
|
|
|
3
|
6
|
|
|
6
|
|
143216
|
use strict; |
|
6
|
|
|
|
|
28
|
|
|
6
|
|
|
|
|
180
|
|
4
|
6
|
|
|
6
|
|
36
|
use warnings; |
|
6
|
|
|
|
|
18
|
|
|
6
|
|
|
|
|
170
|
|
5
|
|
|
|
|
|
|
|
6
|
6
|
|
|
6
|
|
29
|
use vars qw($VERSION); |
|
6
|
|
|
|
|
19
|
|
|
6
|
|
|
|
|
3305
|
|
7
|
|
|
|
|
|
|
$VERSION = '1.00'; |
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
sub new { |
12
|
2
|
|
|
2
|
1
|
8658
|
my ($class) = @_; |
13
|
2
|
|
|
|
|
7
|
my $self = {}; |
14
|
2
|
|
|
|
|
4
|
bless $self, $class; |
15
|
|
|
|
|
|
|
|
16
|
2
|
|
|
|
|
5
|
return $self; |
17
|
|
|
|
|
|
|
} |
18
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
20
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
sub get_info { |
22
|
6
|
|
|
6
|
1
|
12041
|
my $self = shift; |
23
|
6
|
|
|
|
|
40
|
$self->{info}{osname} = 'Mac'; |
24
|
6
|
|
|
|
|
23
|
$self->{info}{osflag} = $^O; |
25
|
|
|
|
|
|
|
|
26
|
6
|
|
|
|
|
17
|
my $uname_s = $self->_command('uname -s'); |
27
|
6
|
100
|
|
|
|
300
|
if ($uname_s =~ /Darwin/i) { |
28
|
4
|
|
|
|
|
50
|
$self->{info}{oslabel} = 'OS X'; |
29
|
|
|
|
|
|
|
|
30
|
4
|
|
|
|
|
22
|
my $productversion = $self->_command('sw_vers -productVersion'); |
31
|
4
|
50
|
|
|
|
221
|
if ($productversion =~ /((\d+)\.(\d+)(\.(\d+))?)/) { |
32
|
4
|
|
|
|
|
18
|
my ($version, $major, $minor) = ($1, $2, $3); |
33
|
4
|
|
|
|
|
10
|
my $versions = _macos_versions(); |
34
|
4
|
50
|
|
|
|
17
|
if (my $codename = $versions->{"$major.$minor"}) { |
35
|
4
|
|
|
|
|
9
|
$self->{info}{codename} = $codename; |
36
|
4
|
|
|
|
|
18
|
$self->{info}{osvers} = $version; |
37
|
|
|
|
|
|
|
} |
38
|
|
|
|
|
|
|
} |
39
|
|
|
|
|
|
|
} |
40
|
|
|
|
|
|
|
|
41
|
6
|
100
|
|
|
|
16
|
if (my $arch = $self->_command('uname -p')) { |
42
|
5
|
|
|
|
|
193
|
chomp $arch; |
43
|
5
|
|
|
|
|
10
|
$self->{info}{archname} = $arch; |
44
|
5
|
50
|
|
|
|
27
|
$self->{info}{is32bit} = $arch !~ /_(64)$/ ? 1 : 0; |
45
|
5
|
50
|
|
|
|
17
|
$self->{info}{is64bit} = $arch =~ /_(64)$/ ? 1 : 0; |
46
|
|
|
|
|
|
|
} |
47
|
|
|
|
|
|
|
|
48
|
6
|
100
|
|
|
|
75
|
if (my $unamev = $self->_command('uname -v')) { |
49
|
5
|
|
|
|
|
214
|
chomp $unamev; |
50
|
5
|
|
|
|
|
12
|
$self->{info}{kernel} = $unamev; |
51
|
|
|
|
|
|
|
} |
52
|
|
|
|
|
|
|
|
53
|
6
|
|
|
|
|
77
|
$self->_command('uname -a'); |
54
|
|
|
|
|
|
|
|
55
|
6
|
|
|
|
|
249
|
return $self->{info}; |
56
|
|
|
|
|
|
|
} |
57
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
60
|
|
|
|
|
|
|
|
61
|
|
|
|
|
|
|
sub _command { |
62
|
9
|
|
|
9
|
|
13
|
my $self = shift; |
63
|
9
|
|
|
|
|
15
|
my $command = shift; |
64
|
9
|
|
|
|
|
19
|
my $result = `$command`; |
65
|
9
|
|
|
|
|
26
|
chomp $result; |
66
|
|
|
|
|
|
|
|
67
|
9
|
|
|
|
|
20
|
$self->{info}{source}{$command} = $result; |
68
|
|
|
|
|
|
|
|
69
|
9
|
|
|
|
|
20
|
return $result; |
70
|
|
|
|
|
|
|
} |
71
|
|
|
|
|
|
|
|
72
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
73
|
|
|
|
|
|
|
|
74
|
|
|
|
|
|
|
sub _macos_versions { |
75
|
|
|
|
|
|
|
return { |
76
|
4
|
|
|
4
|
|
36
|
'10.0' => 'Cheetah', |
77
|
|
|
|
|
|
|
'10.1' => 'Puma', |
78
|
|
|
|
|
|
|
'10.2' => 'Jaguar', |
79
|
|
|
|
|
|
|
'10.3' => 'Panther', |
80
|
|
|
|
|
|
|
'10.4' => 'Tiger', |
81
|
|
|
|
|
|
|
'10.5' => 'Leopard', |
82
|
|
|
|
|
|
|
'10.6' => 'Snow Leopard', |
83
|
|
|
|
|
|
|
'10.7' => 'Lion', |
84
|
|
|
|
|
|
|
'10.8' => 'Mountain Lion', |
85
|
|
|
|
|
|
|
'10.9' => 'Mavericks', |
86
|
|
|
|
|
|
|
'10.10' => 'Yosemite', |
87
|
|
|
|
|
|
|
'10.11' => 'El Capitan', |
88
|
|
|
|
|
|
|
}; |
89
|
|
|
|
|
|
|
} |
90
|
|
|
|
|
|
|
|
91
|
|
|
|
|
|
|
#------------------------------------------------------------------------------- |
92
|
|
|
|
|
|
|
|
93
|
|
|
|
|
|
|
1; |
94
|
|
|
|
|
|
|
|
95
|
|
|
|
|
|
|
__END__ |