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;