package GLPI::Agent::Task::Inventory::Linux::OpenVPNUUID;

use strict;
use warnings;

sub isEnabled {
    my $binary = `which openvpn3-admin 2>/dev/null`;
    return $binary ? 1 : 0;
}

sub doInventory {
    my (%params) = @_;
    my $inventory = $params{inventory};

    my $raw_output = `openvpn3-admin variables --machine-id 2>/dev/null`;

    if ($raw_output) {
        # Capture directement tout ce qui ressemble à une clé (alphanumérique, tirets, deux-points) 
        # juste après 'IV_HWADDR):'
        if ($raw_output =~ /IV_HWADDR\)?:\s*([a-fA-F0-9:-]+)/) {
            my $hwaddr = $1;

            $inventory->setHardware({
                UUID => $hwaddr
            });
        }
    }
}

1;
