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
D
 daemon, Hosts_Access
 daemon_list, Hosts_Access
 database
 dayofmonth, Cron
 dayofweek, Cron
 debian, Grub
 debian_comment, Grub
 debian_comment_re, Grub
 debian_entry, Grub
 debian_footer, Grub
 debian_header, Grub
 debian_setting_re, Grub
 default_depth, Xorg
 default_type, Sudoers
 defaults
 defaults_entry, Mke2fs
 defaults_title, Mke2fs
 del_negate, Sudoers
 del_to_eol, Grub
 dels, Grub
 description, Schroot
 destination, Aliases
 device
 display, Xorg
 display_entry, Xorg
 display_modes, Xorg
 domain, Resolv
 driver, Xorg
E
 email, Keepalived
 empty
 empty_c_style, Util
 empty_generic, Util
 entries, Syslog
 entry
 entry_generic, Xorg
 entry_int, Xorg
 entry_rgb, Xorg
 entry_sto, Mke2fs
 entry_str, Xorg
 entry_xy, Xorg
 eol
 eq, Grub
 except
let daemon = let host = [ label "host" . Util.del_str "@" . store Rx.word ] in [ label "process" . store Rx.word . host? ]
let daemon_list = Build.opt_list daemon comma
A list of daemons
let database = let database_kw = "aliases" | "automount" | "bootparams" | "ethers" | "group" | "hosts" | "netgroup" | "netmasks" | "networks" | "passwd" | "protocols" | "publickey" | "rpc" | "sendmailvars" | "services" | "shadow" | "sudoers" 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 debian = [ label "debian" . del debian_header debian_header . (debian_comment|empty|debian_entry)* . del debian_footer debian_footer ]
A debian-specific section, made of debian_entry lines
let debian_comment = [ Util.indent . label "#comment" . del /##[ \t]*/ "## " . store debian_comment_re . eol ]
A comment entry inside a debian-specific section
let debian_comment_re = /([^ \t\n].*[^ \t\n]|[^ \t\n])/ - "## End Default Options ##"
let debian_entry = [ Util.del_str "#" . Util.indent . key debian_setting_re . del /[ \t]*=/ "=" . value_to_eol? . eol ]
let debian_footer = "## ## End Default Options ##\n"
Footer for a debian-specific section
let debian_header = "## ## Start Default Options ##\n"
Header for a debian-specific section
let debian_setting_re = "kopt" | "groot" | "alternative" | "lockalternative" | "defoptions" | "lockold" | "xenhopt" | "xenkopt" | "altoptions" | "howmany" | "memtest86" | "updatedefaultentry" | "savedefault" | "indomU"
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 . comment_or_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 del_to_eol = del /[^ \t\n]*/ ""
let dels (s:string) = Util.del_str s
let description = let lang = [ Util.del_str "[" . label "lang" . store IniFile.entry_re . Util.del_str "]" ] in [ key "description" . lang? . sep . IniFile.sto_to_comment? . (comment|IniFile.eol) ]
Descriptions are special entries, which can have an optional lang parameter
let destination = ( word | command )
Can be either a word (no spaces included) or a command with spaces
let device = [ command "device" "" . Sep.space . store /\([A-Za-z0-9_.-]+\)/ . spc . [ label "file" . value_to_eol ] . Util.eol ]
This is a shell-only directive in upstream grub; the grub versions in at least Fedora/RHEL use this to find devices for UEFI boot
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_comment "domain" Sep.space (store Rx.word) comment_eol
let driver = entry_str "Driver" /[dD]river/
let email = [ indent . label "email" . sto_email_addr . comment_or_eol ]
A simple email address entry
let empty = Util.empty
let empty = Util.empty
An Util.empty
let empty = Util.empty_c_style
A C-style empty line
let empty = Util.empty
let empty = [ eol ]
Empty line, an eol subnode
let empty = Util.empty
Map empty lines
let empty = IniFile.empty
let empty = Util.empty
let empty = Util.empty
let empty = Util.empty
let empty = [ del /[ \t]*\*?[ \t]*\n/ "\n" ]
Map empty lines, including empty asterisk comments
let empty = [ del /[ \t]*#?[ \t]*\n/ "\n" ]
Map empty lines
let empty = empty_generic /[ \t]*#?[ \t]*/
Map empty lines, including empty comments
let empty_c_style = empty_generic /[ \t]*((\/\/)|(\/\*[ \t]*\*\/))?[ \t]*/
Map empty lines, including C-style empty comment
let empty_generic (r:regexp) = [ del r "" . del_str "\n" ]
A generic definition of empty Map empty lines, including empty comments
let entries = (empty | comment | entry)*
entries are either comments/empty lines or entries
let entry = IniFile.indented_entry entry_re sep comment
let entry = [ access . colon . user_list . (except user_list)? . colon . origin_list . (except origin_list)? . Util.eol ]
A valid entry line Definition:
let rec entry_noeol = let value = Util.del_str "\"" . store /[^"\n]+/ . del /";?/ "\";" in let opt_eol = del /[ \t\n]*/ "\n" in let long_eol = del /[ \t]*\n+/ "\n" in let list_elem = [ opt_eol . label "@elem" . value ] in let eol_comment = del /([ \t\n]*\n)?/ "" . comment in [ key name_re . Sep.space . value ] | [ key name_re . del /[ \t\n]*\{/ " {" . ( (opt_eol . entry_noeol) | list_elem | eol_comment )* . del /[ \t\n]*\};?/ "\n};" ] | [ key name_re . Util.del_str "::" . entry_noeol ]
An apt.conf entry, recursive
let entry = [ label "entry" . indent . ( time | schedule ) . sep_spc . user . sep_spc . store Rx.space_in . eol ]
A crontab entry
let entry = bool ("multi"|"nospoof"|"spoofalert"|"reorder") | bool_warn "spoof" | list "order" "order" | trim
let entry = [ seq "line" . daemon_list . (except daemon_list)? . colon . client_list . (except client_list)? . (colon . shell_command)? . Util.eol ]
let entry (kw:regexp) (sep:lens) (comment:lens) = [ key kw . sep . sto_to_comment? . (comment|eol) ] | comment
Generic INI File entry
let entry (kw:regexp) (lns:lens) = Build.key_value_line kw sep lns
A generic entry for lens lns
let entry = alias | options | kv_line_command /install|remove/ | blacklist | config
let entry = let alias = [ seq "alias" . store Rx.word ] in [ seq "network" . [ label "name" . store Rx.word ] . [ Sep.space . label "number" . store ipv4 ] . [ Sep.space . label "aliases" . Build.opt_list alias Sep.space ]? . (Util.eol|Util.comment) ]
let entry = [ key "allow" . Sep.space . condition_list . Sep.space . by . Util.eol ]
let entry = nameserver | domain | search | sortlist | options
let entry = IniFile.entry (IniFile.entry_re - "description") sep comment | description
An IniFile.entry, or description
let entry = [ label "entry" . selectors . sep_tab . [ label "action" . action ] . eol ]
an entry contains selectors and an action
let entry_generic = [ indent . key generic_entry_re . sep_spc . store to_eol . eol ]
An entry without a specific handler.
let entry_int (canon:string) (re:regexp) = [ indent . del re canon . label canon . sep_spc . store int . eol ]
This matches an entry which takes a single integer for an argument
let entry_rgb (canon:string) (re:regexp) = [ indent . del re canon . label canon . [ label "red" . sep_spc . store int ] . [ label "green" . sep_spc . store int ] . [ label "blue" . sep_spc . store int ] . eol ]
This matches an entry which takes 3 integers as arguments representing red, green and blue components
let entry_sto (kw:regexp) (val:regexp) = entry kw (store val)
Store a regexp as entry value
let entry_str (canon:string) (re:regexp) = [ indent . del re canon . label canon . sep_spc . quoted_string_val . eol ]
This matches an entry which takes a single quoted string
let entry_xy (canon:string) (re:regexp) = [ indent . del re canon . label canon . [ label "x" . sep_spc . store int ] . [ label "y" . sep_spc . store int ] . eol ]
This matches an entry which takes 2 integers as arguments representing X and Y coordinates
let eol = Util.eol
let eol = Util.eol
And Util.eol end of line
let eol = Util.eol
let eol = Util.eol
let eq = dels "="
let except (lns:lens) = [ label "except" . Sep.space . del /[Ee][Xx][Cc][Ee][Pp][Tt]/ "EXCEPT" . Sep.space . lns ]
The except operator makes it possible to write very compact rules.
let except (lns:lens) = [ label "except" . Sep.space . del /except/i "EXCEPT" . Sep.space . lns ]
The except operator makes it possible to write very compact rules.
Close