mirror of
https://git.proxmox.com/git/pve-installer
synced 2025-08-16 19:54:50 +00:00

and don't wrap it within `m//` when using it... Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
36 lines
702 B
Perl
36 lines
702 B
Perl
package Proxmox::Sys::Udev;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
my $UDEV_REGEX = qr/^E: ([^=]+)=(.*)$/;
|
|
|
|
sub query_udevadm_info {
|
|
my ($sys_path) = @_;
|
|
|
|
my $info = `udevadm info --path $sys_path --query all`;
|
|
warn "no details found for device '${sys_path}'\n" if !$info;
|
|
return $info;
|
|
}
|
|
|
|
# return hash of E: properties returned by udevadm
|
|
sub parse_udevadm_info {
|
|
my ($udev_raw) = @_;
|
|
|
|
my $details = {};
|
|
for my $line (split('\n', $udev_raw)) {
|
|
if ($line =~ $UDEV_REGEX) {
|
|
$details->{$1} = $2;
|
|
}
|
|
}
|
|
return $details;
|
|
}
|
|
|
|
sub get_udev_properties {
|
|
my ($sys_path) = @_;
|
|
my $info = query_udevadm_info($sys_path) or return;
|
|
return parse_udevadm_info($info);
|
|
}
|
|
|
|
1;
|