line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Devel::Platform::Info::SCO; |
2
|
|
|
|
|
|
|
|
3
|
4
|
|
|
4
|
|
5585
|
use strict; |
|
4
|
|
|
|
|
6
|
|
|
4
|
|
|
|
|
116
|
|
4
|
4
|
|
|
4
|
|
13
|
use warnings; |
|
4
|
|
|
|
|
4
|
|
|
4
|
|
|
|
|
88
|
|
5
|
|
|
|
|
|
|
|
6
|
4
|
|
|
4
|
|
12
|
use vars qw($VERSION); |
|
4
|
|
|
|
|
3
|
|
|
4
|
|
|
|
|
1519
|
|
7
|
|
|
|
|
|
|
$VERSION = '0.15'; |
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
#---------------------------------------------------------------------------- |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
my %commands = ( |
12
|
|
|
|
|
|
|
'_uname' => 'uname -a', |
13
|
|
|
|
|
|
|
'_lsb' => 'uname -X', |
14
|
|
|
|
|
|
|
'kname' => 'uname -s', |
15
|
|
|
|
|
|
|
'kvers' => 'uname -r', |
16
|
|
|
|
|
|
|
# 'osname' => 'uname -o', |
17
|
|
|
|
|
|
|
# 'osvers' => 'uname -v', |
18
|
|
|
|
|
|
|
'archname' => 'uname -m', |
19
|
|
|
|
|
|
|
); |
20
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
my %releases = ( |
22
|
|
|
|
|
|
|
'3.2.0' => { oslabel => 'SCO UNIX System V/386', codename => '' }, |
23
|
|
|
|
|
|
|
'3.2.1' => { oslabel => 'Open Desktop 1.0', codename => '' }, |
24
|
|
|
|
|
|
|
'3.2v2.0' => { oslabel => 'Open Desktop 1.1', codename => '' }, |
25
|
|
|
|
|
|
|
'3.2v4.0' => { oslabel => 'SCO UNIX', codename => '' }, |
26
|
|
|
|
|
|
|
'3.2v4.1' => { oslabel => 'Open Desktop 2.0', codename => 'Phoenix' }, |
27
|
|
|
|
|
|
|
'3.2v4.2' => { oslabel => 'Open Desktop/Server 3.0', codename => 'Tbird' }, |
28
|
|
|
|
|
|
|
'3.2v5.0' => { oslabel => 'OpenServer 5.0', codename => 'Everest' }, |
29
|
|
|
|
|
|
|
'3.2v5.0.2' => { oslabel => 'OpenServer 5.0.2', codename => '' }, |
30
|
|
|
|
|
|
|
'3.2v5.0.4' => { oslabel => 'OpenServer 5.0.4', codename => 'Comet' }, |
31
|
|
|
|
|
|
|
'3.2v5.0.5' => { oslabel => 'OpenServer 5.0.5', codename => 'Davenport' }, |
32
|
|
|
|
|
|
|
'3.2v5.0.6' => { oslabel => 'OpenServer 5.0.6', codename => 'Freedom' }, |
33
|
|
|
|
|
|
|
'3.2v5.0.7' => { oslabel => 'OpenServer 5.0.7', codename => 'Harvey West' }, |
34
|
|
|
|
|
|
|
'5' => { oslabel => 'OpenServer 6.0', codename => 'Legend' }, |
35
|
|
|
|
|
|
|
); |
36
|
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
#---------------------------------------------------------------------------- |
38
|
|
|
|
|
|
|
|
39
|
|
|
|
|
|
|
sub new { |
40
|
0
|
|
|
0
|
1
|
|
my ($class) = @_; |
41
|
0
|
|
|
|
|
|
my $self = {}; |
42
|
0
|
|
|
|
|
|
bless $self, $class; |
43
|
|
|
|
|
|
|
|
44
|
0
|
|
|
|
|
|
return $self; |
45
|
|
|
|
|
|
|
} |
46
|
|
|
|
|
|
|
|
47
|
|
|
|
|
|
|
sub get_info { |
48
|
0
|
|
|
0
|
1
|
|
my $self = shift; |
49
|
|
|
|
|
|
|
|
50
|
0
|
|
|
|
|
|
for my $cmd (keys %commands) { |
51
|
0
|
|
|
|
|
|
$self->{cmds}{$cmd} = `$commands{$cmd} 2>/dev/null`; |
52
|
0
|
|
|
|
|
|
$self->{cmds}{$cmd} =~ s/\s+$//s; |
53
|
0
|
0
|
|
|
|
|
$self->{info}{$cmd} = $self->{cmds}{$cmd} if($cmd !~ /^_/); |
54
|
|
|
|
|
|
|
} |
55
|
|
|
|
|
|
|
|
56
|
0
|
|
|
|
|
|
$self->{info}{osflag} = $^O; |
57
|
0
|
|
|
|
|
|
$self->{info}{osname} = 'SCO'; |
58
|
0
|
|
|
|
|
|
$self->{info}{kernel} = lc($self->{info}{kname}) . '-' . $self->{info}{kvers}; |
59
|
0
|
|
|
|
|
|
($self->{info}{osvers}) = $self->{cmds}{'_lsb'} =~ /Release\s*=\s*(.*?)\n/s; |
60
|
0
|
|
|
|
|
|
($self->{info}{oslabel}) = $releases{ $self->{info}{osvers} }->{oslabel}; |
61
|
0
|
|
|
|
|
|
($self->{info}{codename}) = $releases{ $self->{info}{osvers} }->{codename}; |
62
|
|
|
|
|
|
|
|
63
|
0
|
0
|
|
|
|
|
$self->{info}{is32bit} = $self->{info}{archname} !~ /_(64)$/ ? 1 : 0; |
64
|
0
|
0
|
|
|
|
|
$self->{info}{is64bit} = $self->{info}{archname} =~ /_(64)$/ ? 1 : 0; |
65
|
|
|
|
|
|
|
|
66
|
0
|
|
|
|
|
|
$self->{info}{source}{$commands{$_}} = $self->{cmds}{$_} for(keys %commands); |
67
|
0
|
|
|
|
|
|
return $self->{info}; |
68
|
|
|
|
|
|
|
} |
69
|
|
|
|
|
|
|
|
70
|
|
|
|
|
|
|
1; |
71
|
|
|
|
|
|
|
|
72
|
|
|
|
|
|
|
__END__ |