Builtin Functions

Augeas comes with a number of builtin functions. They can be used anywhere, without qualifying them with a module name.

Lens functions

These functions construct lenses. They are described on the lenses page

Tree manipulation

These functions are mostly useful for making changes to a tree during a put test

set PATH VALUE TREE -> TREE
Set the value of the node PATH to VALUE in the input tree TREE, and return the modified tree. Both PATH and VALUE must be strings, and PATH must be a path expression that matches one node.
clear PATH TREE -> TREE
Set the value of the node PATH to NULL in the input tree TREE, and return the modified tree. PATH must be a string, denoting a path expression that matches on node.
rm PATH TREE -> TREE
Remove the subtree at PATH in the input tree TREE and return the resulting tree. PATH must be a string, denoting a path expression.
insa LABEL PATH TREE -> TREE
Insert a new tree node with label LABEL into the tree. Inserts the new node after the existing node at PATH in the input tree TREE and returns the modified tree. LABEL must be a string not containing /, and PATH must be a string containing a path expression that matches exactly one node in TREE.
insb LABEL PATH TREE -> TREE
Same as insa, but inserts the new node before the existing node at PATH.

Filters and transforms

Filters can be built up from simpler filters through concatenation, for example, (incl "/dir/*") . (excl "/dir/*.bak") lists all files in /dir that do not have the extension .bak. A file is included by a filter if it matches at least one incl filter and no excl filter.

incl GLOB -> FILTER
Produce a new filter that includes files that match the shell glob GLOB. GLOB must be a string.
excl GLOB -> FILTER
Produce a new filter that excludes files that match the shell glob GLOB. GLOB must be a string.
transform LENS FILTER -> TRANSFORM
Create a new transform that applies the lens LENS to all files that are included by the filter FILTER.

Printing

Printing functions are useful for debugging lenses. They are generally used with an anonymous let, for example let _ = print_endline "Hello, World".

print_string STRING -> UNIT
Print the string STRING and return nothing.
print_regexp RE -> UNIT
Print the regular expression RE and return nothing.
print_endline STR -> UNIT
Print the string STR followed by a newline, and return nothing.
print_tree TREE --> TREE
Print the tree TREE and return it. This function is mostly useful in the list of commands in put unit tests, since it makes it possible to look at the tree the test is operating on.

Lens inspection

These functions pick apart a lens, and are sometimes useful in debugging.

lens_ctype LNS -> REGEXP
Return the concrete type of a lens, the regular expression that is matched against an input string to produce the tree.
lens_atype LNS -> REGEXP
Return the abstract type of a lens, the regular expression that is matched against one level in the tree to turn the tree back into a string.
lens_ktype LNS -> REGEXP
Return the regular expression that matches the key/label of the tree node produced by the lens.
lens_vtype LNS -> REGEXP
Return the regular expression that matches the value of the tree node produced by the lens.
lens_format_atype LNS -> STRING
Return a human-readable representation of the abstract type of the lens.

Tree transformation

These functions are not all that useful by themselves, they are usually used in unit tests.

get LENS STRING -> TREE
Apply the get direction of lens LENS to the string STRING and return the resulting tree.
put LENS TREE STRING -> STRING
Apply the put direction of lens LENS to the tree TREE, assuming it was initially generated from string STRING with a get, and return the resulting string.

Regular expression functions

regexp_match REGEXP STRING -> STRING
Match REGEXP against STRING and return the resulting match. If REGEXP does not match at all, return the empty string.

System functions

These functions are in the Sys module, and therefore need to be prefixed with Sys. when they are used

getenv VAR -> STRING
Return the value of the environment variable VAR, or the empty string if VAR is not defined. VAR must be a string.
read_file FILE -> STRING
Return the contents of file FILE as a string. FILE must be a string containing the absolute path to a file.