Implement Augeas.load API.
[ocaml-augeas.git] / 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: augeas.ml,v 1.2 2008/05/06 10:48:20 rjones Exp $
19  *)
20
21 type t
22
23 exception Error of string
24
25 type flag =
26   | AugSaveBackup
27   | AugSaveNewFile
28   | AugTypeCheck
29   | AugNoStdinc
30   | AugSaveNoop
31   | AugNoLoad
32
33 type path = string
34
35 type value = string
36
37 external create : string -> string option -> flag list -> t
38   = "ocaml_augeas_create"
39 external close : t -> unit
40   = "ocaml_augeas_close"
41 external get : t -> path -> value option
42   = "ocaml_augeas_get"
43 external exists : t -> path -> bool
44   = "ocaml_augeas_exists"
45 external insert : t -> ?before:bool -> path -> string -> unit
46   = "ocaml_augeas_insert"
47 external rm : t -> path -> int
48   = "ocaml_augeas_rm"
49 external matches : t -> path -> path list
50   = "ocaml_augeas_match"
51 external count_matches : t -> path -> int
52   = "ocaml_augeas_count_matches"
53 external save : t -> unit
54   = "ocaml_augeas_save"
55 external load : t -> unit
56   = "ocaml_augeas_load"
57
58 let () =
59   Callback.register_exception "Augeas.Error" (Error "")