diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/vyos1x_renderer.ml | 22 | 
1 files changed, 14 insertions, 8 deletions
| diff --git a/lib/vyos1x_renderer.ml b/lib/vyos1x_renderer.ml index 4a1f4a0..f127806 100644 --- a/lib/vyos1x_renderer.ml +++ b/lib/vyos1x_renderer.ml @@ -29,7 +29,8 @@ let render_values indent_str name values =      | [v] -> Printf.sprintf "%s%s %s\n" indent_str name v      | _  ->           let rendered = List.map (fun s -> Printf.sprintf "%s%s %s" indent_str name s) values in -        String.concat "\n" rendered +        let rendered = String.concat "\n" rendered in +        Printf.sprintf "%s\n" rendered  let render_comment indent c =      match c with @@ -46,18 +47,18 @@ let rec render_node indent level node =      let values = render_values indent_str name data.values in      let children = VT.children_of_node node in      match children with -    | [] -> Printf.sprintf "%s\n%s" comment values +    | [] -> Printf.sprintf "%s%s" comment values      | _ ->          if is_tag then               begin -                let inner = List.map (render_tag_node indent (level + 1) name) children in -                String.concat "\n" inner +                let inner = List.map (render_tag_node indent level name) children in +                String.concat "" inner              end          else              begin                  let inner = List.map (render_node indent (level + 1)) children in -                let inner = String.concat "\n" inner in -                Printf.sprintf "%s%s%s {\n%s\n%s}\n" indent_str comment name inner indent_str +                let inner = String.concat "" inner in +                Printf.sprintf "%s%s%s {\n%s%s}\n" comment indent_str name inner indent_str              end  and render_tag_node indent level parent node = @@ -74,9 +75,14 @@ and render_tag_node indent level parent node =          (* Exploiting the fact that immediate children of tag nodes are             never themselves tag nodes *)          let inner = List.map (render_node indent (level + 1)) children in -        let inner = String.concat "\n" inner in -        Printf.sprintf "%s%s%s %s {\n%s\n%s}\n" indent_str comment parent name inner indent_str +        let inner = String.concat "" inner in +        Printf.sprintf "%s%s%s %s {\n%s%s}\n" comment indent_str parent name inner indent_str +let render node = +    let children = Vytree.children_of_node node in +    let child_configs = List.map (render_node 4 0) children in +(*    List.fold_left (Printf.sprintf "%s\n%s") "" child_configs *) +    String.concat "" child_configs | 
