Support regex in os field replace (#14563)

* Support regex in os field replace

* Support regex in os field replace
This commit is contained in:
Tony Murray
2022-11-02 12:32:36 -05:00
committed by GitHub
parent a00ad931ab
commit 7612aa7d86

View File

@@ -165,10 +165,20 @@ trait YamlOSDiscovery
{
foreach ($this->osFields as $field) {
foreach ($os_yaml["{$field}_replace"] ?? [] as $replacements) {
$search = $replacements;
$replacement = '';
// check for a given replacement string (otherwise, remove)
if (is_array($replacements) && count($replacements) == 2) {
$device->$field = str_replace($replacements[0], $replacements[1], $device->$field);
} elseif (is_string($replacements)) {
$device->$field = str_replace($replacements, '', $device->$field);
$search = $replacements[0];
$replacement = $replacements[1];
}
// check for regex
if (preg_match($search, $device->$field)) {
$device->$field = preg_replace($search, $replacement, $device->$field);
} else {
$device->$field = str_replace($search, $replacement, $device->$field);
}
}
}