| A | |
| access, Access | |
| Access | |
| action, Syslog | |
| address, Pg_Hba | |
| alias | |
| alias_entry, Sudoers | |
| alias_entry_single, Sudoers | |
| alias_field, Sudoers | |
| alias_list, Sudoers | |
| alias_name, Sudoers | |
| Aliases | |
| ALIASES, Sudoers | |
| All but, Rx | |
| alpha, Cron | |
| alphanum, Cron | |
| Approx | |
| AptConf | |
| at, Syslog | |
| att_def1, Test_Xml | |
| att_def2, Test_Xml | |
| att_def3, Test_Xml | |
| att_list_def, Test_Xml.Xml | |
| attr1, Test_Xml | |
| attr2, Test_Xml | |
| attributes, Test_Xml.Xml | |
| Attributes, Test_Xml | |
| Augeas Lenses | |
| Augeas Tests | |
| Augeas Variables | |
| B | |
| BackupPCHosts | |
| bang, Syslog | |
| basic tokens, Aliases | |
| blacklist, Modprobe | |
| block, Keepalived | |
| body, Xinetd | |
| bool, Host_Conf | |
| bool_warn, Host_Conf | |
| boot, Grub | |
| BOOT ENTRIES, Grub | |
| boot_setting, Grub | |
| brackets, Build | |
| Build | |
| by, Reprepro_Uploaders | |
| by_key, Reprepro_Uploaders |
Allow (+) or deny (-) access
let access = label "access" . store /[+-]/
let address = [ label "address" . store ipaddr ]
let alias = let modulename = [ label "modulename" . sto_no_spaces ] in Build.key_value_line_comment "alias" sep_space (sto_no_spaces . sep_space . modulename) comment
let alias = [ label "alias" . store word_re ]
Every kind of Alias entry, see user_alias, runas_alias, host_alias and cmnd_alias
let alias = user_alias | runas_alias | host_alias | cmnd_alias
Alias entry, a list of comma-separated alias_entry_single fields
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 )* . comment_or_eol ]
Single alias_entry, named using alias_name and listing alias_list
let alias_entry_single (field:string) (sto:lens) = [ label "alias" . alias_name . sep_eq . alias_list field sto ]
Generic alias field to gather all Alias definitions
let alias_field (kw:string) (sto:lens) = [ label kw . sto ]
List of alias_fields, separated by commas
let alias_list (kw:string) (sto:lens) = alias_field kw sto . ( sep_com . alias_field kw sto )*
Name of an alias_entry_single
let alias_name = [ label "name" . store /[A-Z][A-Z0-9_]*/ ]
let alpha = /[A-Za-z]{3}/
let alphanum = (num|alpha) . ("-" . (num|alpha))?
Deletes a at and default to it
let at = Util.del_str "@"
let att_def1 = "<!ATTLIST termdef id ID #REQUIRED name CDATA #IMPLIED>"
let att_def2 = "<!ATTLIST list type (bullets|ordered|glossary) \"ordered\">"
let att_def3 = "<!ATTLIST form method CDATA #FIXED \"POST\">"
test Xml.att_list_def get att_def1 = { "!ATTLIST" = "termdef" { "1" { "#name" = "id" } { "#type" = "ID" } { "#REQUIRED" } } { "2" { "#name" = "name" } { "#type" = "CDATA" } { "#IMPLIED" } } }
let attr1 = " attr1=\"value1\" attr2=\"value2\""
let attr2 = " attr2=\"foo\""
test Xml.attributes get attr1 = { "#attribute" { "attr1" = "value1" } { "attr2" = "value2" } }
Deletes a bang and default to it
let bang = Util.del_str "!"
let blacklist = Build.key_value_line_comment "blacklist" sep_space sto_no_spaces comment
A simple block with just a block title
let block (kw:string) (sto:lens) = lens_block (key kw) sto
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 body (attr:lens) = del /\n\{[ \t]*\n/ "\n{\n" . (empty|comment|attr)* . del /[ \t]*\}[ \t]*\n/ "}\n"
A boolean switch
let bool (kw:regexp) = Build.key_value_line kw Sep.space sto_bool
A boolean switch with extended values
let bool_warn (kw:regexp) = Build.key_value_line kw Sep.space sto_bool_warn
let boot = let line = ((boot_setting|comment)* . boot_setting)? in [ label "title" . title . line ]
boot entries
let boot_setting = kw_boot_arg "root" | kernel | kw_boot_arg "initrd" | kw_boot_arg "rootnoverify" | chainloader | kw_boot_arg "uuid" | kw_boot_arg "findroot" (* Solaris extension *) | kw_boot_arg "bootfs" (* Solaris extension *) | kw_pres "quiet" (* Seems to be a Ubuntu extension *) | savedefault | configfile | module_line | map_line
Put a lens inside brackets
let brackets (l:lens) (r:lens) (lns:lens) = l . lns . r
by statements define who is allowed to upload.
let by = [ key "by" . Sep.space . ( store ("anybody"|"unsigned") | by_key ) ]
When a key is used to authenticate packages, the value can either be a key ID or “any”:
let by_key = let any_key = [ store "any" . Sep.space . key "key" ] in let named_key = [ key "key" . Sep.space . store (Rx.word - "any") ] in value "key" . (any_key | named_key)