File Coverage

blib/lib/Devel/Platform/Info/SCO.pm
Criterion Covered Total %
statement 9 28 32.1
branch 0 6 0.0
condition n/a
subroutine 3 5 60.0
pod 2 2 100.0
total 14 41 34.1


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__