summaryrefslogtreecommitdiff
path: root/src/config_tree.ml
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2018-06-05 16:35:12 +0700
committerDaniil Baturin <daniil@baturin.org>2018-06-05 16:35:12 +0700
commit335560d2c0420a363942d3368dec0b04dd8bf62b (patch)
treed47f9944e4e5b2881707151c40d9fa5858849ce8 /src/config_tree.ml
parent7f26d95164265b0ffd345afd510bf03ee98cd1d8 (diff)
downloadvyconf-335560d2c0420a363942d3368dec0b04dd8bf62b.tar.gz
vyconf-335560d2c0420a363942d3368dec0b04dd8bf62b.zip
Add a function for getting sorted children from a node and use it for sorting set commands.
Diffstat (limited to 'src/config_tree.ml')
-rw-r--r--src/config_tree.ml7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/config_tree.ml b/src/config_tree.ml
index c6fddb4..9b630d9 100644
--- a/src/config_tree.ml
+++ b/src/config_tree.ml
@@ -331,12 +331,15 @@ let render_at_level
let child_configs = List.map (render ~indent:indent ~reftree:reftree ~cmp:cmp ~showephemeral:showephemeral ~showinactive:showinactive) children in
List.fold_left (Printf.sprintf "%s\n%s") "" child_configs
-let render_commands ?(reftree=None) ?(alwayssort=false) node path =
+let render_commands ?(reftree=None) ?(alwayssort=false) ?(sortchildren=false) node path =
let node =
match path with
| [] -> node
| _ -> Vytree.get node path
in
- let children = Vytree.children_of_node node in
+ let children =
+ if sortchildren then Vytree.sorted_children_of_node (BatString.numeric_compare) node
+ else Vytree.children_of_node node
+ in
let commands = List.map (Renderer.render_commands ~reftree:reftree ~alwayssort:alwayssort path) children in
String.concat "\n" commands