summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/build-command-op-templates61
1 files changed, 33 insertions, 28 deletions
diff --git a/scripts/build-command-op-templates b/scripts/build-command-op-templates
index 72879fe74..865590c2c 100755
--- a/scripts/build-command-op-templates
+++ b/scripts/build-command-op-templates
@@ -93,7 +93,7 @@ def get_properties(p):
try:
props["help"] = p.find("help").text
except:
- pass
+ props["help"] = "No help available"
# Get the completion help strings
@@ -113,7 +113,7 @@ def get_properties(p):
for i in paths:
comp_exprs.append("/bin/cli-shell-api listNodes {0}".format(i.text))
for i in scripts:
- comp_exprs.append("sh -c \"{0}\"".format(i.text))
+ comp_exprs.append("{0}".format(i.text))
comp_help = " && ".join(comp_exprs)
props["comp_help"] = comp_help
except:
@@ -128,14 +128,6 @@ def make_node_def(props, command):
node_def = ""
- if "tag" in props:
- node_def += "tag:\n"
-
-
- if "type" in props:
- node_def += "type: {0}\n".format(props["type"])
-
-
if "help" in props:
node_def += "help: {0}\n".format(props["help"])
@@ -173,32 +165,45 @@ def process_node(n, tmpl_dir):
props = get_properties(props_elem)
- # Type should not be set for non-tag, non-leaf nodes
- if node_type != "node":
- props["type"] = "txt"
+ if node_type == "node":
+ if debug:
+ print("Processing node {}".format(name))
+
+ with open(os.path.join(make_path(my_tmpl_dir), "node.def"), "w") as f:
+ f.write(make_node_def(props, command))
+
+ if children is not None:
+ inner_nodes = children.iterfind("*")
+ for inner_n in inner_nodes:
+ process_node(inner_n, my_tmpl_dir)
if node_type == "tagNode":
- props["tag"] = "True"
-
+ if debug:
+ print("Processing tag node {}".format(name))
- with open(os.path.join(make_path(my_tmpl_dir), "node.def"), "w") as f:
- f.write(make_node_def(props, command))
+ os.makedirs(make_path(my_tmpl_dir), exist_ok=True)
+ with open(os.path.join(make_path(my_tmpl_dir), "node.def"), "w") as f:
+ f.write('help: {0}\0'.format(props['help']))
- if node_type == "node":
- inner_nodes = children.iterfind("*")
- for inner_n in inner_nodes:
- process_node(inner_n, my_tmpl_dir)
- if node_type == "tagNode":
my_tmpl_dir.append("node.tag")
- if debug:
- print("Created path for the tagNode:", end="")
os.makedirs(make_path(my_tmpl_dir), exist_ok=True)
- inner_nodes = children.iterfind("*")
- for inner_n in inner_nodes:
- process_node(inner_n, my_tmpl_dir)
+ if debug:
+ print("Created path for the tagNode: {}".format(make_path(my_tmpl_dir)), end="")
+
+ with open(os.path.join(make_path(my_tmpl_dir), "node.def"), "w") as f:
+ f.write(make_node_def(props, command))
+
+ if children is not None:
+ inner_nodes = children.iterfind("*")
+ for inner_n in inner_nodes:
+ process_node(inner_n, my_tmpl_dir)
else:
# This is a leaf node
- pass
+ if debug:
+ print("Processing leaf node {}".format(name))
+
+ with open(os.path.join(make_path(my_tmpl_dir), "node.def"), "w") as f:
+ f.write(make_node_def(props, command))
root = xml.getroot()