File: BSD.pm

package info (click to toggle)
ocsinventory-agent 2%3A2.10.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,424 kB
  • sloc: perl: 26,492; xml: 773; objc: 528; sh: 386; ansic: 333; makefile: 12
file content (42 lines) | stat: -rw-r--r-- 1,104 bytes parent folder | download | duplicates (4)
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;