netplan_yaml
This commit is contained in:
parent
17e6b1ee2b
commit
ff74d1ac20
|
|
@ -81,27 +81,34 @@ function netplan_yaml(array $data, int $indent = 0): string
|
||||||
$pad = str_repeat(' ', $indent);
|
$pad = str_repeat(' ', $indent);
|
||||||
|
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
if (is_array($value)) {
|
|
||||||
$is_list = array_keys($value) === range(0, count($value) - 1);
|
|
||||||
|
|
||||||
if ($is_list) {
|
// List (numeric keys)
|
||||||
|
if (is_array($value) && array_keys($value) === range(0, count($value) - 1)) {
|
||||||
foreach ($value as $item) {
|
foreach ($value as $item) {
|
||||||
if (is_array($item)) {
|
if (is_array($item)) {
|
||||||
$yaml .= "{$pad}-\n" . netplan_yaml($item, $indent + 1);
|
$yaml .= "{$pad}-\n";
|
||||||
|
$yaml .= netplan_yaml($item, $indent + 1);
|
||||||
} else {
|
} else {
|
||||||
$yaml .= "{$pad}- {$item}\n";
|
$yaml .= "{$pad}- {$item}\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
continue;
|
||||||
$yaml .= "{$pad}{$key}:\n" . netplan_yaml($value, $indent + 1);
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
|
// Mapping
|
||||||
|
if (is_array($value)) {
|
||||||
|
$yaml .= "{$pad}{$key}:\n";
|
||||||
|
$yaml .= netplan_yaml($value, $indent + 1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scalar
|
||||||
if (is_bool($value)) {
|
if (is_bool($value)) {
|
||||||
$value = $value ? 'true' : 'false';
|
$value = $value ? 'true' : 'false';
|
||||||
}
|
}
|
||||||
|
|
||||||
$yaml .= "{$pad}{$key}: {$value}\n";
|
$yaml .= "{$pad}{$key}: {$value}\n";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $yaml;
|
return $yaml;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue