source: ocsinventory-agent/trunk/fuentes/lib/Ocsinventory/Agent/Backend/OS/Solaris/Packages.pm @ 468

Last change on this file since 468 was 468, checked in by mabarracus, 4 years ago

Copyt trusty code

File size: 1.4 KB
Line 
1package Ocsinventory::Agent::Backend::OS::Solaris::Packages;
2
3use strict;
4use warnings;
5
6sub check {
7  my $params = shift;
8
9  # Do not run an package inventory if there is the --nosoft parameter
10  return if ($params->{config}->{nosoft});
11
12  can_run("pkginfo");
13}
14
15sub run {
16  my $params = shift;
17  my $common = $params->{common};
18  my $chaine ;
19  my @tab;
20
21  my $name;
22  my $version;
23  my $comments;
24  my $publisher;
25  foreach (`pkginfo -l`) {
26    if (/^\s*$/) {
27      $common->addSoftware({
28          'NAME'          => $name,
29          'VERSION'       => $version,
30          'COMMENTS'      => $comments,
31          'PUBLISHER'      => $publisher,
32          });
33
34      $name = '';
35      $version = '';
36      $comments = '';
37      $publisher = '';
38
39    } elsif (/PKGINST:\s+(.+)/) {
40      $name = $1;
41    } elsif (/VERSION:\s+(.+)/) {
42      $version = $1;
43    } elsif (/VENDOR:\s+(.+)/) {
44      $publisher = $1;
45    } elsif (/DESC:\s+(.+)/) {
46      $comments = $1;
47    }
48  }
49  my $testrep;
50  $testrep=0;
51  #opendir(DIR,'/var/sis/') || exit ;
52  opendir(DIR,'/var/sis/') || ($testrep=1) ;
53  if ($testrep==0)
54  {
55       
56       
57          foreach (`ls /var/sis/*.SIS`)
58          {
59                $chaine= `cat $_` ;
60                @tab = split(/;/, $chaine);
61                if (/^\/var\/sis\/(\S+).SIS/){
62                                $common->addSoftware({
63                                        'VERSION'       => $tab[2],
64                                        'NAME'          => $tab[0]." ($1)",
65                                        'PUBLISHER'     => $tab[1],
66                                        'COMMENTS'              => $1,
67                                });
68                        }
69               
70          }
71  }
72  closedir(DIR);
73}
74
751;
Note: See TracBrowser for help on using the repository browser.