summaryrefslogtreecommitdiff
path: root/scripts/build-command-templates
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-04-02 12:57:30 +0200
committerChristian Poessinger <christian@poessinger.com>2021-06-08 07:54:32 +0200
commitbca6af49ffe39d6c01b3925c7b93b39cecaa2d25 (patch)
treeb401c5959530ae10341abd7985b5320b3f7f7b41 /scripts/build-command-templates
parent6289ee5ac3e7c2392cdefe5df4b7b4b1c69e93d7 (diff)
downloadvyos-1x-bca6af49ffe39d6c01b3925c7b93b39cecaa2d25.tar.gz
vyos-1x-bca6af49ffe39d6c01b3925c7b93b39cecaa2d25.zip
T3165: prevent override of populated node.def file with empty content
(cherry picked from commit b4fdcebebecd8d8952211b78bce26d53fd29edb3)
Diffstat (limited to 'scripts/build-command-templates')
-rwxr-xr-xscripts/build-command-templates11
1 files changed, 6 insertions, 5 deletions
diff --git a/scripts/build-command-templates b/scripts/build-command-templates
index d6585b0cc..452c420eb 100755
--- a/scripts/build-command-templates
+++ b/scripts/build-command-templates
@@ -274,13 +274,14 @@ def process_node(n, tmpl_dir):
raise ValueError("<valueless/> is only allowed in <leafNode>")
nodedef_path = os.path.join(make_path(my_tmpl_dir), "node.def")
- if not os.path.exists(nodedef_path):
+
+ # Only create the "node.def" file if it exists but is empty, or if it does
+ # not exist at all. An empty node.def file could be generated by XML paths
+ # that derive from one another bot having a common base structure like
+ # "protocols static"
+ if not os.path.exists(nodedef_path) or os.path.getsize(nodedef_path) == 0:
with open(nodedef_path, "w") as f:
f.write(make_node_def(props))
- else:
- # Something has already generated that file
- pass
-
if node_type == "node":
inner_nodes = children.iterfind("*")