File: BSD.pm

package info (click to toggle)
ocsinventory-agent 2%3A2.0.5-1.2
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 4,120 kB
  • ctags: 899
  • sloc: perl: 20,687; sh: 576; objc: 468; ansic: 333; makefile: 55
file content (42 lines) | stat: -rw-r--r-- 1,044 bytes parent folder | download | duplicates (2)
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
package Ocsinventory::Agent::Backend::OS::BSD;

use strict;

use vars qw($runAfter);
$runAfter = ["Ocsinventory::Agent::Backend::OS::Generic"];

sub check { $^O =~ /freebsd|openbsd|netbsd|gnukfreebsd|gnuknetbsd/ }

sub run {
  my $params = shift;
  my $common = $params->{common};

  my $OSName;
  my $OSComment;
  my $OSVersion;
  my $OSLevel;
  my $OSArchi;

  # Operating system informations
  chomp($OSName=`uname -s`);
  chomp($OSVersion=`uname -r`);
  chomp($OSArchi=`uname -p`);

  # Retrieve the origin of the kernel configuration file
  my ($date, $origin, $kernconf);
  for (`sysctl -n kern.version`) {
      $date = $1 if /^\S.*\#\d+:\s*(.*)/;
      ($origin,$kernconf) = ($1,$2) if /^\s+(.+):(.+)$/;
  }
  $kernconf =~ s/\/.*\///; # remove the path
  $OSComment = $kernconf." (".$date.")\n".$origin;
  # if there is a problem use uname -v
  chomp($OSComment=`uname -v`) unless $OSComment; 
  
  $common->setHardware({
      OSNAME => $OSName." ".$OSArchi,
      OSCOMMENTS => $OSComment,
      OSVERSION => $OSVersion,
    });
}
1;