Add Augeas.defnode
[ocaml-augeas.git] / test_augeas.ml
1 (* Augeas OCaml bindings
2  * Copyright (C) 2008 Red Hat Inc., Richard W.M. Jones
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * $Id: test_augeas.ml,v 1.1 2008/05/06 10:48:20 rjones Exp $
19  *)
20
21 let () =
22   let aug =
23     let loadpath = None in
24     let flags = [ Augeas.AugSaveBackup ] in
25     Augeas.create "test_root" loadpath flags in
26
27   (* Print all files recursively. *)
28   let rec print path =
29     if path <> "" then (
30       let value = Augeas.get aug path in
31       match value with
32       | None -> print_endline path
33       | Some value -> Printf.printf "%s -> '%s'\n%!" path value
34     );
35     let files = List.sort compare (Augeas.matches aug (path ^ "/*")) in
36     List.iter print files
37   in
38   print "";
39
40   (* Run the garbage collector to check for internal errors. *)
41   Gc.compact ()