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
A
 access, Access
 address, Pg_Hba
 alias
 alias_entry, Sudoers
 alias_entry_single, Sudoers
 alias_field, Sudoers
 alias_list, Sudoers
 alias_name, Sudoers
B
 block, Keepalived
 body, Xinetd
 brackets, Build
C
 cmd_kv, Solaris_System
 cmd_moddir, Solaris_System
 cmd_set, Solaris_System
 cmnd_alias, Sudoers
 cmnd_spec, Sudoers
 cmnd_spec_list, Sudoers
 comma_sep_list
 comment
 comment_c_style, Util
 comment_eol
 comment_generic, Util
 comment_multiline, Util
 comment_or_eol
 common_entry, Mke2fs
D
 database
 dayofmonth, Cron
 dayofweek, Cron
 default_depth, Xorg
 default_type, Sudoers
 defaults
 defaults_entry, Mke2fs
 defaults_title, Mke2fs
 del_negate, Sudoers
 device, Xorg
 display, Xorg
 display_entry, Xorg
 display_modes, Xorg
 domain, Resolv
 driver, Xorg
let access = label "access" . store /[+-]/
Allow (+) or deny (-) access
let address = [ label "address" . store ipaddr ]
let alias = [ label "alias" . store word_re ]
let alias = user_alias | runas_alias | host_alias | cmnd_alias
Every kind of Alias entry, see user_alias, runas_alias, host_alias and cmnd_alias
let alias_entry (
   kw:string
) (field:string) (sto:lens) = [ indent . key kw . sep_cont . alias_entry_single field sto . ( sep_col . alias_entry_single field sto )* . eol ]
Alias entry, a list of comma-separated alias_entry_single fields
let alias_entry_single (
   field:string
) (sto:lens) = [ label "alias" . alias_name . sep_eq . alias_list field sto ]
Single alias_entry, named using alias_name and listing alias_list
let alias_field (kw:string) (sto:lens) = [ label kw . sto ]
Generic alias field to gather all Alias definitions
let alias_list (
   kw:string
) (sto:lens) = alias_field kw sto . ( sep_com . alias_field kw sto )*
List of alias_fields, separated by commas
let alias_name = [ label "name" . store /[A-Z][A-Z0-9_]*/ ]
Name of an alias_entry_single
let block (kw:string) (sto:lens) = lens_block (key kw) sto
A simple block with just a block title
let body (
   attr:lens
) = Util.del_str "\n{\n" . (empty|comment|attr)* . del /[ \t]*}[ \t]*\n/ "}\n"
We would really like to say “the body can contain any of a list of a list of attributes, each of them at most once”; but that would require that we build a lens that matches the permutation of all attributes; with around 40 individual attributes, that’s not computationally feasible, even if we didn’t have to worry about how to write that down.
let brackets (l:lens) (r:lens) (lns:lens) = l . lns . r
Put a lens inside brackets
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 = cmnd_spec . (sep_com cmnd_spec)*
A list of comma-separated cmnd_specs
let comma_sep_list (
   l:string
) = let value = [ label "value" . Util.del_str "=" . store optval ] in
A comma separated list of options (opt=value or opt)
let comment (
   pat:regexp
) (default:string) = [ label "#comment" . sep pat default . sto_to_eol? . eol ]
Map comments into “#comment” nodes
let comment = Util.comment_generic /[ \t]*[#!][ \t]*/ "# "
Map comments in “#comment” nodes
let comment = IniFile.comment IniFile.comment_re IniFile.comment_default
let comment = Util.comment
let comment = Util.comment_generic /[ \t]*[;#][ \t]*/ "# "
let comment = Util.comment_generic /[ \t]*\*[ \t]*/ "* "
let comment = let sto_to_eol = store (
   /([^ \t\n].*[^ \t\n]|[^ \t\n])/ /includedir.*/
) in [ label "#comment" . del /[ \t]*#[ \t]*/ "# " . sto_to_eol . eol ]
Map comments in “#comment” nodes
let comment = [ label "#comment" . del /#[ \t]*/ "# " . store /([^ \t\n+!-].*[^ \t\n]|[^ \t\n+!-])/ . eol ]
Map comments into “#comment” nodes Can’t use Util.comment as #+ and #! 
let comment = comment_generic /[ \t]*#[ \t]*/ "# "
Map comments into “#comment” nodes
let comment_c_style = comment_generic /[ \t]*\/\/[ \t]*/ "// "
A comment line, C-style
let comment_eol = Util.comment_generic /[ \t]*[#!][ \t]*/ " # "
Map comments at eol
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) = [ label "#comment" . del r d . store /([^ \t\n].*[^ \t\n]|[^ \t\n])/ . eol ]
Map comments and set default comment sign
let comment_multiline = let mline_re = (
   /[^ \t\n].*[^ \t\n]|[^ \t\n]/ /.*\*\/.*/
) in
A C-style multiline comment
let comment_or_eol = comment_eol | (del /[ \t]*#?\n/ "\n")
A comment_eol or eol
let comment_or_eol = comment_eol | (del /[ \t]*#?\n/ "\n")
A comment_eol or eol
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 database = let database_kw = "aliases" | "automount" | "bootparams" | "ethers" | "group" | "hosts" | "netgroup" | "netmasks" | "networks" | "passwd" | "protocols" | "publickey" | "rpc" | "sendmailvars" | "services" | "shadow" in [ label "database" . store database_kw . sep_colon . (Build.opt_list (service|reaction) Sep.space) . Util.eol ]
let database = comma_sep_list "database"
TODO: support for quoted strings
let dayofmonth = [ label "dayofmonth" . store num ]
let dayofweek = [ label "dayofweek" . store alphanum ]
let default_depth = entry_int "DefaultDepth" /[dD]efault[dD]epth/
let default_type = let value = store /[@:>][^ \t\n\\\\]+/ in [ label "type" . value ]
Type definition for defaults
let defaults = IniFile.record defaults_title (
   (Util.indent . (defaults_entry|common_entry)) comment
)
A defaults section
let defaults = [ indent . key "Defaults" . default_type? . sep_cont . parameter_list . eol ]
A Defaults entry
let defaults_entry = entry_sto "force_undo" (
   "true"|"false"
) | entry_sto "fs_type" Rx.word | entry_sto "undo_dir" Rx.fspath
Possible entries under the defaults section
let defaults_title = IniFile.title "defaults"
Title for the defaults section
let del_negate = del /(!!)*/ ""
Delete an even number of ‘!’
let device = entry_str "Device" /[dD]evice/
let display = [ indent . del "SubSection" "SubSection" . sep_spc . sep_dquote . key "Display" . sep_dquote . eol . display_entry* . indent . del "EndSubSection" "EndSubSection" . eol ]
let display_entry = entry_int "Depth" /[dD]epth/ | entry_int "FbBpp" /[fF]b[bB]pp/ | entry_rgb "Weight" /[wW]eight/ | entry_xy "Virtual" /[vV]irtual/ | entry_xy "ViewPort" /[vV]iew[pP]ort/ | display_modes | entry_str "Visual" /[vV]isual/ | entry_rgb "Black" /[bB]lack/ | entry_rgb "White" /[wW]hite/ | entry_str "Options" /[oO]ptions/ | empty | comment
Known values for entries in the Display subsection
let display_modes = [ indent . del /[mM]odes/ "Modes" . label "Modes" . [ label "mode" . sep_spc . quoted_string_val ]+ . eol ]
let domain = Build.key_value_line "domain" Sep.space (store Rx.word)
let driver = entry_str "Driver" /[dD]river/
Close