/usr/share/fusioninventory/lib/FusionInventory/Agent/Tools/HPUX.pm is in fusioninventory-agent 1:2.3.10.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | package FusionInventory::Agent::Tools::HPUX;
use strict;
use warnings;
use base 'Exporter';
use English qw(-no_match_vars);
use FusionInventory::Agent::Tools;
use Memoize;
our @EXPORT = qw(
getInfoFromMachinfo
isHPVMGuest
);
memoize('getInfoFromMachinfo');
memoize('isHPVMGuest');
sub getInfoFromMachinfo {
my (%params) = (
command => '/usr/contrib/bin/machinfo',
@_
);
my $handle = getFileHandle(%params);
return unless $handle;
my $info;
my $current;
while (my $line = <$handle>) {
chomp $line;
#key: value
if ($line =~ /^ (\S [^:]+) : \s+ (.*\S)/x) {
$info->{$1} = $2;
next;
}
# key: value
if ($line =~ /^ \s+ (\S [^:]+) : \s+ (.*\S)/x) {
$info->{$current}->{lc($1)} = $2;
next;
}
# key = value
if ($line =~ /^ \s+ (\S [^=]+) \s+ = \s+ (.*\S)/x) {
$info->{$current}->{lc($1)} = $2;
next;
}
# value
if ($line =~ /^ \s+ (.*\S)/x) {
# hack for CPUinfo:
# accumulate new lines if current node is not an hash
if ($info->{$current}) {
$info->{$current} .= " $1" if ! ref $info->{$current};
} else {
$info->{$current} = $1;
}
next;
}
#key:
if ($line =~ /^ (\S [^:]+) :$/x) {
$current = $1;
next;
}
}
close $handle;
return $info;
}
sub isHPVMGuest {
return getFirstMatch(
command => 'hpvminfo',
pattern => qr/HPVM guest/
);
}
1;
__END__
=head1 NAME
FusionInventory::Agent::Tools::HPUX - HPUX generic functions
=head1 DESCRIPTION
This module provides some generic functions for HPUX.
=head1 FUNCTIONS
=head2 getInfoFromMachinfo
Returns a structured view of machinfo output.
|