Augeas Lens Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
C
 cacheconfig, Cachefilesd
 caid, Channels
 chainloader, Grub
 change, MasterPasswd
 change_add, Ldif
 change_control, Ldif
 change_delete, Ldif
 change_modify, Ldif
 change_modrdn, Ldif
 change_modspec, Ldif
 change_record, Ldif
 class, MasterPasswd
 clear, AptConf
 client, Hosts_Access
 client_file, Hosts_Access
 client_file_item, Hosts_Access
 client_host_item, Hosts_Access
 client_list, Hosts_Access
 client_output_buffer_limit_entry, Redis
 cluster_nodes, Rabbitmq
 cluster_partition_handling, Rabbitmq
 cmd_kv, Solaris_System
 cmd_moddir, Solaris_System
 cmd_set, Solaris_System
 cmnd_alias, Sudoers
 cmnd_spec, Sudoers
 cmnd_spec_list, Sudoers
 colon
 color
 combine_three
 combine_three_opt
 combine_three_opt_ord, Build
 combine_three_ord, Build
 combine_two
 combine_two_opt
 combine_two_opt_ord, Build
 combine_two_ord, Build
 comma
 comma_sep, JettyRealm
 comma_sep_list
 comma_spc_sep_list, Automaster
 command
 command_start, Dovecot
 comment
 comment_c_style, Util
 comment_c_style_or_hash, Util
 comment_eol
 comment_generic, Util
 comment_generic_seteol, Util
 comment_multi, AptConf
 comment_multiline, Util
 comment_noindent
 comment_or_eol
 comment_re, Grub
 comment_simple, AptConf
 common_entry, Mke2fs
 comparison The greater and lesser than operators, Xymon_Alerting
 condition
 condition_field, Reprepro_Uploaders
 condition_list, Reprepro_Uploaders
 condition_re, Reprepro_Uploaders
 conf
 config
 configfile, Grub
 correction_re, Ntpd
let cacheconfig = [ key (entry_key - nocull) . space . store entry_value . eol ]
This is a simple “key value” setup
let caid = let caid_entry = [ label "caid" . store Rx.word ] in Build.opt_list caid_entry comma
let chainloader = [ command "chainloader" "\t" . [ spc . switch "force" ]? . spc . store Rx.no_spaces . eol ]
let change_date = [ label "change_date" . store integer? . colon ]
pw_change
let change_add = [ attr_changetype "add" ] . ( sep_line* . attr_val_spec )+
change-add = “add” SEP 1*attrval-spec
let change_control = let attr_criticality = [ Util.del_ws_spc . label "criticality" . store /true|false/ ] in let attr_ctrlvalue = [ label "value" . (attr_safe_string | attr_base64_string | attr_url_string ) ] in [ key "control" . sep_colon . store ldapoid_re . attr_criticality? . attr_ctrlvalue? . eol ]
“control:” FILL ldap-oid 0*1(1*SPACE (“true” / “false”)) 0*1(value-spec)
let change_delete = [ attr_changetype "delete" ]
change-delete = “add” SEP 1*attrval-spec
let change_modify = [ attr_changetype "modify" ] . ( sep_line* . [ change_modspec . sep_line* . sep_modspec ] )+
change-modify = “modify” SEP *mod-spec
let change_modrdn = let attr_deleteoldrdn = [ key "deleteoldrdn" . attr_intflag . eol ] in let attrs_modrdn = attr_dn_value "newrdn" | attr_dn_value "newsuperior" | attr_deleteoldrdn in [ attr_changetype /modr?dn/ ] . ( sep_line | attrs_modrdn )* . attrs_modrdn
(“modrdn” / “moddn”) SEP newrdn/newsuperior/deleteoldrdn
let change_modspec = attr_modspec . ( sep_line* . attr_val_spec )*
change-modspec = add/delete/replace: AttributeDesc SEP *attrval-spec “-”
let change_record = ( change_add | change_delete | change_modify | change_modrdn)
changerecord = “changetype:” FILL (changeadd/delete/modify/moddn)
let class = [ label "class" . sto_to_col? . colon ]
pw_class
let clear = let name = [ label "name" . store name_re_colons ] in [ indent . key "#clear" . Sep.space . Build.opt_list name Sep.space . eol ]
A list of variables to clear /!\ The manpage is not clear on the syntax
let client = let user = [ label "user" . list_item . Util.del_str "@" ] in [ label "client" . user? . client_host_item ]
let client_file = [ label "file" . client_file_item ]
let client_file_item = let client_file_rx = /\/[^ \t\n,:]+/ in store ( client_file_rx - /EXCEPT/i )
let client_host_item = let client_hostname_rx = /[A-Za-z0-9_.@?*-][A-Za-z0-9_.?*-]*/ in let client_ipv6_rx = "[" . /[A-Za-z0-9:?*%]+/ . "]" in let client_host_rx = client_hostname_rx | client_ipv6_rx in let netmask = [ Util.del_str "/" . label "netmask" . store Rx.word ] in store ( client_host_rx - /EXCEPT/i ) . netmask?
Allows @ for netgroups, supports [ipv6] syntax
let client_list = Build.opt_list ( client | client_file ) list_sep
A list of clients
let client_output_buffer_limit_entry = [ indent . key cobl_cmd . del_ws_spc . class . del_ws_spc . hard_limit . del_ws_spc . soft_limit . del_ws_spc . soft_seconds . eol ]
Entries identified by the “client-output-buffer-limit” keyword can be found more than once.
let cluster_nodes = let nodes = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let value = Erlang.tuple nodes Erlang.bare | nodes in Erlang.value "cluster_nodes" value
Can be a tuple `(nodes, node_type)` or simple `nodes`
let cluster_partition_handling = let nodes = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let value = Erlang.tuple3 Erlang.bare nodes Erlang.bare | Erlang.bare in Erlang.value "cluster_partition_handling" value
Can be single value or `{pause_if_all_down, [nodes], ignore | autoheal}`
let cmd_kv (cmd:string) (value:regexp) = Build.key_value_line cmd sep_colon (store value)
Function for simple key/value setting commands such as rootfs
let cmd_moddir = Build.key_value_line "moddir" sep_colon (Build.opt_list modpath sep_moddir)
The moddir command for specifying module search paths
let cmd_set = [ key "set" . Util.del_ws_spc . ( set_var | set_varmod ) . set_sep_spc . [ label "operator" . store set_operators ] . set_sep_spc . set_value . Util.eol ]
The set command for individual kernel/module parameters
let cmnd_alias = alias_entry "Cmnd_Alias" "command" sto_to_com_cmnd
Cmnd_Alias, see alias_field
let cmnd_spec = [ label "command" . runas_spec? . tag_spec* . sto_to_com_cmnd ]
Command specification for spec, with optional runas_spec and any amount of tag_specs
let cmnd_spec_list = Build.opt_list cmnd_spec sep_com
A list of comma-separated cmnd_specs
let colon = del /[ \t]*:[ \t]*/ ":\t"
Separation between the alias and it’s destinations
let colon = del /:[ \t]*/ ": "
let colon = Sep.colon
Separation between selinux attributes
let colon = Sep.colon
let colon = del /[ \t]*(\\\\[ \t]*\n[ \t]+)?:[ \t]*(\\\\[ \t]*\n[ \t]+)?/ ": "
let colon = Sep.colon
let colon = Sep.colon
let color =
let color = kw_word "COLOR"
The color filter definition
let combine_three (a:lens) (b:lens) (c:lens) = combine_three_ord a b c | combine_three_ord b a c | combine_three_ord c b a
Combine three lenses
let combine_three = let entry (k:string) = [ key k ] in Build.combine_three (entry "a") (entry "b") (entry "c")
A minimalistic optional combination lens
let combine_three_opt (a:lens) (b:lens) (c:lens) = combine_three_opt_ord a b c | combine_three_opt_ord b a c | combine_three_opt_ord c b a
Combine three lenses optionally (either a, b, c, or any of them, in any order)
let combine_three_opt = let entry (k:string) = [ key k ] in Build.combine_three_opt (entry "a") (entry "b") (entry "c")
A minimalistic optional combination lens
let combine_three_opt_ord (a:lens) (b:lens) (c:lens) = combine_two_opt_ord a (combine_two_opt b c)
Combine three lenses optionally, ensuring first lens is first (a followed by either b, c, or any of them, in any order)
let combine_three_ord (a:lens) (b:lens) (c:lens) = combine_two_ord a (combine_two b c)
Combine three lenses, ensuring first lens is first (a followed by either b, c, in any order)
let combine_two (a:lens) (b:lens) = combine_two_ord a b | combine_two_ord b a
Combine two lenses
let combine_two = let entry (k:string) = [ key k ] in Build.combine_two (entry "a") (entry "b")
A minimalistic combination lens
let combine_two_opt (a:lens) (b:lens) = combine_two_opt_ord a b | combine_two_opt_ord b a
Combine two lenses optionally (either a, b, or both, in any order)
let combine_two_opt = let entry (k:string) = [ key k ] in Build.combine_two_opt (entry "a") (entry "b")
A minimalistic optional combination lens
let combine_two_opt_ord (a:lens) (b:lens) = a . b?
Combine two lenses optionally, ensuring first lens is first (a, and optionally b)
let combine_two_ord (a:lens) (b:lens) = a . b
Combine two lenses, ensuring first lens is first
let comma = del /[ \t]*,[ \t]*(\n[ \t]+)?/ ", "
Separation between multiple destinations
let comma = Sep.comma
let comma = Sep.comma
let comma = space_or_eol "," ", "
let comma = del /[ \t\n]*,[ \t\n]*/ ", "
a comma, optionally preceded or followed by spaces or newlines
let comma_sep = del /,[ \t]*/ ", "
let comma_sep_list (l:string) = let value = [ label "value" . Util.del_str "=" . store Rx.neg1 ] in let lns = [ label l . store optlabel . value? ] in Build.opt_list lns Sep.comma
Parses options for filesystems
let comma_sep_list (l:string) = let value = [ label "value" . Util.del_str "=" . store optval ] in let lns = [ label l . store word . value? ] in Build.opt_list lns comma
A comma separated list of options (opt=value or opt)
let comma_spc_sep_list (l:string) = let value = [ label "value" . Util.del_str "=" . store Rx.neg1 ] in let lns = [ label l . store optlabel . value? ] in Build.opt_list lns optsep
Parses options either for filesystems or autofs
let command = boot | echo | ls | machine | set | stty
let command = [ command_start . key commands . Sep.space . store Rx.fspath . eol ]
Map commands started with “!”
let command (kw:regexp) (indent:string) = Util.del_opt_ws indent . key kw
let command = let obrkt = del /\[/ "[" in let cbrkt = del /\]/ "]" in [ key "command" . [ obrkt . key /[^]\/\n]+/ . cbrkt . eq . store /[^\n]+/ . del /\n/ "\n" ] ]
nrpe.cfg usually has many entries defining commands to run
let command_start = Util.del_str "!"
let comment = Util.comment
let comment = Util.comment
let comment = [ indent . label "#comment" . del /[#;][ \t]*/ "# " . store /([^ \t\n].*[^ \t\n]|[^ \t\n])/ . eol ]
let comment = IniFile.comment IniFile.comment_re IniFile.comment_default
let comment = comment_simple | comment_multi
A comment, either comment_simple or comment_multi
let comment = Util.comment
let comment = Util.comment
let comment = Util.comment
let comment = IniFile.comment "#" "#"
let comment = Util.comment
let comment = Util.comment
let comment = Util.comment_generic /;[ \t]*/ "; "
let comment = Util.comment_generic /[ \t]*[!;#%][ \t]*/ "# "
from 4.2.1 of the upstream doc Chrony comments start with: !
let comment = Util.comment | [ del /#[ \t]*\r?\n/ "#\n" ]
let comment = Util.comment
Map comments in “#comment” nodes.
let comment = Util.comment_generic /%[ \t]*/ "% "
let comment = [ Util.indent . label "#comment" . del /#[ \t]*/ "# " . store comment_re . eol ]
let comment (pat:regexp) (default:string) = Util.comment_generic_seteol (Rx.opt_space . pat . Rx.opt_space) default eol
Map comments into “#comment” nodes
let comment = Util.comment_generic /[ \t]*[#!][ \t]*/ "# "
Map comments in “#comment” nodes
let comment = Util.comment_generic /#[ \t]*/ "# "
let comment = IniFile.comment IniFile.comment_re IniFile.comment_default
let comment = Util.comment
let comment = Util.comment
let comment = Util.comment_generic /#[ \t]*/ "# "
Nrpe comments must start at beginning of line
let comment = Util.comment
let comment = Util.comment
let comment = Util.comment
let comment = IniFile.comment "#" "#"
let comment = Util.comment_generic /[ \t]*[;#][ \t]*/ "# "
let comment = IniFile.comment "#" "#"
An IniFile.comment entry
let comment = Util.comment_generic /[ \t]*\*[ \t]*/ "* "
let comment = IniFile.comment_noindent "#" "#"
let comment = let sto_to_eol = store (/([^ \t\n].*[^ \t\n]|[^ \t\n])/ - /include(dir)?.*/) in [ label "#comment" . del /[ \t]*#[ \t]*/ "# " . sto_to_eol . eol ]
Map comments in “#comment” nodes
let comment = Util.comment_generic /[ \t]*[#;][ \t]*/ "# "
let comment_gen (space:regexp) (sto:regexp) = [ label "#comment" . del (Rx.opt_space . "#" . space) "# " . store sto . eol ]
Map comments into “#comment” nodes Can’t use Util.comment as #+ and #! 
let comment = Util.comment
Comments
let comment = IniFile.comment "#" "#"
A simple comment
let comment = Util.comment
let comment = comment_generic /[ \t]*#[ \t]*/ "# "
Map comments into “#comment” nodes
let comment = Util.comment
let comment_c_style = comment_generic /[ \t]*\/\/[ \t]*/ "// "
A comment line, C-style
let comment_c_style_or_hash = comment_generic /[ \t]*((\/\/)|#)[ \t]*/ "// "
A comment line, C-style or hash
let comment_eol = Util.comment_generic /[ \t]*[#!][ \t]*/ " # "
Map comments at eol
let comment_eol = Util.comment_generic /[ \t]*[;#][ \t]*/ " # "
let comment_eol = Util.comment_generic /[ \t]+#[ \t]*/ " # "
Requires a space before the #
let comment_eol = comment_generic /[ \t]*#[ \t]*/ " # "
Map eol comments into “#comment” nodes Add a space before # for end of line comments
let comment_generic (r:regexp) (d:string) = comment_generic_seteol r d doseol
Map comments and set default comment sign
let comment_generic_seteol (r:regexp) (d:string) (eol:lens) = [ label "#comment" . del r d . store /([^ \t\r\n].*[^ \t\r\n]|[^ \t\r\n])/ . eol ]
Map comments and set default comment sign
let comment_multi = Util.comment_multiline
A multiline comment, C-style
let comment_multiline = let mline_re = (/[^ \t\r\n].*[^ \t\r\n]|[^ \t\r\n]/ - /.*\*\/.*/) in let mline = [ seq "mline" . del /[ \t\r\n]*/ "\n" . store mline_re ] in [ label "#mcomment" . del /[ \t]*\/\*/ "/*" . counter "mline" . mline . (eol . mline)* . del /[ \t\r\n]*\*\/[ \t]*\r?\n/ "\n*/\n" ]
A C-style multiline comment
let comment_noindent (pat:regexp) (default:string) = Util.comment_generic_seteol (pat . Rx.opt_space) default eol
Map comments into “#comment” nodes, no indentation allowed
let comment_noindent = comment_generic /#[ \t]*/ "# "
Map comments into “#comment” nodes, without indentation
let comment_or_eol = comment_eol | (del /[ \t]*[#!]?\n/ "\n")
A comment_eol or eol
let comment_or_eol = Util.comment_or_eol
let comment_or_eol = comment_eol | (del /([ \t]+#\n|[ \t]*\n)/ "\n")
A comment_eol or eol
let comment_or_eol = comment_eol | (del /[ \t]*(#[ \t]*)?\n/ "\n")
A comment_eol or eol, with an optional empty comment
let comment_re = /([^ \t\n].*[^ \t\n]|[^ \t\n])/ - /# ## (Start|End) Default Options ##/
let comment_simple = Util.comment_c_style_or_hash
A one-line comment, C-style
let common_entry = list_sto ("base_features"|"default_features") (key Rx.word) | entry_sto "blocksize" ("-"? . Rx.integer) | entry_sto "hash_alg" ("legacy"|"half_md4"|"tea") | entry_sto ("inode_ratio"|"inode_size") Rx.integer
Entries shared between defaults and fs_types sections
let rec condition = [ Util.del_str "$if" . label "@if" . Sep.space . store Rx.space_in . Util.eol . (Util.empty | Util.comment | condition | variable | entry)* . [ Util.del_str "$else" . label "@else" . Util.eol . (Util.empty | Util.comment | condition | variable | entry)* ] ? . Util.del_str "$endif" . Util.eol ]
An “if” declaration, recursive
let condition = logic_construct_condition "or" condition_field
A condition is an ‘and’ node, representing a union of condition_fields, listed under ‘or’ subnodes:
let condition_field = let sto_condition = Util.del_str "'" . store /[^'\n]+/ . Util.del_str "'" in [ key "not" . Sep.space ]? . store condition_re . [ Sep.space . key "contain" ]? . Sep.space . logic_construct_field "or" "|" sto_condition
A single condition field is an ‘or’ node.
let condition_list = store "*" | logic_construct_condition "and" condition
A list of conditions, inspired by Debctrl.dependency_list An upload condition list is either the wildcard ‘*’, stored verbatim, or an intersection of conditions listed under ‘and’ subnodes:
let condition_re = "source" | "byhand" | "sections" | "binaries" | "architectures" | "distribution"
let conf = "# comment * username:password [mail.isp.example] username:password [mail.isp.example]:submission username:password [mail.isp.example]:587 username:password mail.isp.example username:password user@mail.isp.example username: mail.isp.example username2:password2 "
let conf = "# a comment the.backed-up.domain.tld relay:[their.mail.host.tld] .my.domain : * smtp:outbound-relay.my.domain example.com uucp:example example.com slow: example.com :[gateway.example.com] user.foo@example.com smtp:bar.example:2025 .example.com error:mail for *.example.com is not deliverable "
let conf = "# a comment virtual-alias.domain anything postmaster@virtual-alias.domain postmaster user1@virtual-alias.domain address1 user2@virtual-alias.domain address2, address3 root robert.oot@domain.com @example.net root,postmaster postmaster mtaadmin+root=mta1 some_user localuser "
let config (app:lens) = (Util.empty | comment)* . rspace lbrack . Build.opt_list (kernel | app) (lrspace comma) . lrspace rbrack . Util.del_str "." . Util.eol . (Util.empty | comment)*
A top-level config
let config = Build.key_value_line_comment "config" sep_space (store /binary_indexes|yes|no/) comment
let configfile = [ command "configfile" "\t" . spc . store Rx.no_spaces . eol ]
let correction_re = Rx.relinteger_noplus
should actually only match between -127000000 and 127000000
Close