type t
(** Augeas library handle. *)
-exception Error of string
- (** This exception is thrown when the underlying Augeas library
- returns an error. *)
-
type flag =
| AugSaveBackup (** Rename original with .augsave *)
| AugSaveNewFile (** Save changes to .augnew *)
| AugNoStdinc
| AugSaveNoop
| AugNoLoad
+ | AugNoModlAutoload
+ | AugEnableSpan
+ | AugNoErrClose
+ | AugTraceModuleLoading
(** Flags passed to the {!create} function. *)
+type error_code =
+ | AugErrInternal (** Internal error (bug) *)
+ | AugErrPathX (** Invalid path expression *)
+ | AugErrNoMatch (** No match for path expression *)
+ | AugErrMMatch (** Too many matches for path expression *)
+ | AugErrSyntax (** Syntax error in lens file *)
+ | AugErrNoLens (** Lens lookup failed *)
+ | AugErrMXfm (** Multiple transforms *)
+ | AugErrNoSpan (** No span for this node *)
+ | AugErrMvDesc (** Cannot move node into its descendant *)
+ | AugErrCmdRun (** Failed to execute command *)
+ | AugErrBadArg (** Invalid argument in funcion call *)
+ | AugErrLabel (** Invalid label *)
+ | AugErrCpDesc (** Cannot copy node into its descendant *)
+ | AugErrUnknown of int
+ (** Possible error codes. *)
+
+type transform_mode =
+ | Include
+ | Exclude
+ (** The operation mode for the {!transform} function. *)
+
+exception Error of error_code * string * string * string * string
+ (** This exception is thrown when the underlying Augeas library
+ returns an error. The tuple represents:
+ - the Augeas error code
+ - the ocaml-augeas error string
+ - the Augeas error message
+ - the human-readable explanation of the Augeas error, if available
+ - a string with details of the Augeas error
+ *)
+
type path = string
(** A path expression.
Do not use the handle after closing it. *)
+val defnode : t -> string -> string -> string option -> int * bool
+ (** [defnode t name expr value] defines [name] whose value is the
+ result of evaluating [expr], which is a nodeset. *)
+
+val defvar : t -> string -> string option -> int option
+ (** [defvar t name expr] defines [name] whose value is the result
+ of evaluating [expr], replacing the old value if existing.
+ [None] as [expr] removes the variable [name]. *)
+
val get : t -> path -> value option
(** [get t path] returns the value at [path], or [None] if there
is no value. *)
of [path]. By default it is inserted after [path], unless
[~before:true] is specified. *)
+val label : t -> path -> string option
+ (** [label t path] gets the label of [path].
+
+ Returns [Some value] when [path] matches only one node, and
+ that has an associated label. *)
+
val rm : t -> path -> int
(** [rm t path] removes all nodes matching [path].
(** [matches t path] returns a list of path expressions
of all nodes matching [path]. *)
+val mv : t -> path -> path -> unit
+ (** [mv t src dest] moves a node. *)
+
val count_matches : t -> path -> int
(** [count_matches t path] counts the number of nodes matching
[path] but does not return them (see {!matches}). *)
val load : t -> unit
(** [load t] loads files into the tree. *)
+
+val set : t -> path -> value option -> unit
+ (** [set t path] sets [value] as new value at [path]. *)
+
+val setm : t -> path -> string option -> value option -> int
+ (** [setm t base sub value] sets [value] as new value for all the
+ nodes under [base] that match [sub] (or all, if [sub] is
+ [None]).
+
+ Returns the number of nodes modified. *)
+
+val transform : t -> string -> string -> transform_mode -> unit
+ (** [transform t lens file mode] adds or removes (depending on
+ [mode]) the transformation of the specified [lens] for [file]. *)
+
+val source : t -> path -> path option
+ (** [source t path] returns the path to the node representing the
+ file to which [path] belongs, or [None] if [path] does not
+ represent any file. *)