summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2023-12-23 16:22:31 -0800
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2023-12-24 08:41:37 +0000
commit3ba1686b1fee167dffe5c14f961412fe0363116c (patch)
tree2be7d41092ee50c8bbf5854eeeada2d193a3f1c0 /scripts
parentda86681d04fd1c3d23f3c5bd898fbec9e0e6535a (diff)
downloadvyos-1x-3ba1686b1fee167dffe5c14f961412fe0363116c.tar.gz
vyos-1x-3ba1686b1fee167dffe5c14f961412fe0363116c.zip
xml: T5854: clear empty paths left by embedded override of defaultValue
(cherry picked from commit c4f9c936c9fdd32e7f6258c0dfa8c8cf6057998d)
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/override-default18
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/override-default b/scripts/override-default
index 0c49087c8..5058e79b3 100755
--- a/scripts/override-default
+++ b/scripts/override-default
@@ -41,6 +41,14 @@ if debug:
else:
logger.setLevel(logging.INFO)
+def clear_empty_path(el):
+ # on the odd chance of interleaved comments
+ tmp = [l for l in el if isinstance(l.tag, str)]
+ if not tmp:
+ p = el.getparent()
+ p.remove(el)
+ clear_empty_path(p)
+
def override_element(l: list):
"""
Allow multiple override elements; use the final one (in document order).
@@ -59,7 +67,9 @@ def override_element(l: list):
# remove all but overridden element
for el in parents:
- el.getparent().remove(el)
+ tmp = el.getparent()
+ tmp.remove(el)
+ clear_empty_path(tmp)
def merge_remaining(l: list, elementtree):
"""
@@ -81,7 +91,9 @@ def merge_remaining(l: list, elementtree):
# override_element() has already run
for child in el:
rp[0].append(deepcopy(child))
- el.getparent().remove(el)
+ tmp = el.getparent()
+ tmp.remove(el)
+ clear_empty_path(tmp)
def collect_and_override(dir_name):
"""
@@ -104,7 +116,7 @@ def collect_and_override(dir_name):
for k, v in defv.items():
if len(v) > 1:
- logger.info(f"overridding default in path '{k}'")
+ logger.info(f"overriding default in path '{k}'")
override_element(v)
to_merge = list(defv)