diff options
| author | John Estabrook <jestabro@vyos.io> | 2023-12-23 16:22:31 -0800 | 
|---|---|---|
| committer | John Estabrook <jestabro@vyos.io> | 2023-12-23 18:39:21 -0800 | 
| commit | c4f9c936c9fdd32e7f6258c0dfa8c8cf6057998d (patch) | |
| tree | 8978fe4d4105d378967e9ba3d8207848759e1ae9 | |
| parent | 4393a2fb056574f5079270554d30751d11bf5a9a (diff) | |
| download | vyos-1x-c4f9c936c9fdd32e7f6258c0dfa8c8cf6057998d.tar.gz vyos-1x-c4f9c936c9fdd32e7f6258c0dfa8c8cf6057998d.zip | |
xml: T5854: clear empty paths left by embedded override of defaultValue
| -rwxr-xr-x | scripts/override-default | 18 | 
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) | 
