O | |
opt_hash, Syslog | |
opt_list, Build | |
opt_plus, Syslog | |
option | |
options, Resolv | |
optval | |
origin_list, Access | |
P | |
parameter, Sudoers | |
parameter_flag, Sudoers | |
parameter_integer, Sudoers | |
parameter_list, Sudoers | |
parameter_lists, Sudoers | |
parameter_string, Sudoers | |
Pbuilder | |
Pg_Hba | |
pipe, Syslog | |
plus, Syslog | |
port, Services | |
prefixlen, Keepalived | |
program, Syslog | |
Program matching, Syslog | |
programs, Syslog | |
protocol, Services | |
puppetfileserver.aug | |
Q | |
quoted_string_val, Xorg | |
R | |
rbracket, Keepalived | |
reaction, Nsswitch | |
real_server_field, Keepalived | |
record | |
RECORD | |
Record definition, IniFile | |
RECORD TYPES, Mke2fs | |
record_label_re, IniFile | |
record_local, Pg_Hba | |
record_noempty, IniFile | |
record_re, IniFile | |
record_remote, Pg_Hba | |
RECORDS, cgrules | |
Records definitions, Pg_Hba | |
Reference | |
remtypes, Pg_Hba | |
Resolv | |
runas_alias, Sudoers | |
runas_spec, Sudoers | |
Rx |
deletes an optional # sign
let opt_hash = del /#?/ ""
Same as list, but there might be only one element in the list
let opt_list ( lns:lens ) (sep:lens) = lns . ( sep . lns )*
deletes an optional + sign
let opt_plus = del /\+?/ ""
part of method
let option = [ label "option" . store word ]
let option = [ indent . del /[oO]ption/ "Option" . label "Option" . sep_spc . quoted_string_val . [ label "value" . sep_spc . quoted_string_val ]* . eol ]
Options values
let options = let options_entry = Build.key_value ( "ndots"|"timeout"|"attempts" ) (Util.del_str ":") (store Rx.integer) | Build.flag ("debug"|"rotate"|"no-check-names" |"inet6"|"ip6-bytestring"|"edns0") | ip6_dotint in Build.key_value_line "options" Sep.space (Build.opt_list options_entry Sep.space)
let optval = /[A-Za-z0-9_.:-]+/
origin_list can be a single ipaddr/originname/domain/fqdn or a list of those values
let origin_list = let origin_re = Rx.no_spaces - /[Ee][Xx][Cc][Ee][Pp][Tt]/ in Build.opt_list [ label "origin" . store origin_re ] Sep.space
A single parameter for defaults
let parameter = parameter_flag | parameter_integer | parameter_string | parameter_lists
A flag parameter for defaults
let parameter_flag_kw = "always_set_home" | "authenticate" | "env_editor" | "env_reset" | "fqdn" | "ignore_dot" | "ignore_local_sudoers" | "insults" | "log_host" | "log_year" | "long_otp_prompt" | "mail_always" | "mail_badpass" | "mail_no_host" | "mail_no_perms" | "mail_no_user" | "noexec" | "path_info" | "passprompt_override" | "preserve_groups" | "requiretty" | "root_sudo" | "rootpw" | "runaspw" | "set_home" | "set_logname" | "setenv" | "shell_noargs" | "stay_setuid" | "targetpw" | "tty_tickets" | "visiblepw"
An integer parameter for defaults
let parameter_integer_nobool_kw = "passwd_tries"
A list of comma-separated parameters for defaults
let parameter_list = parameter . ( sep_com . parameter )*
A single list parameter for defaults
let parameter_lists_kw = "env_check" | "env_delete" | "env_keep"
A string parameter for defaults
let parameter_string_nobool_kw = "badpass_message" | "editor" | "mailsub" | "noexec_file" | "passprompt" | "runas_default" | "syslog_badpri" | "syslog_goodpri" | "timestampdir" | "timestampowner" | "secure_path"
Deletes a pipe and default to it
let pipe = Util.del_str "|"
Deletes a plus and default to it
let plus = Util.del_str "+"
let port = [ label "port" . store num_re ]
A prefix for IP addresses
let prefixlen = [ label "prefixlen" . Util.del_str "/" . sto_num ]
a program begins with an optional hash, a bang, and an optional + or -
let program = [ label "program" . opt_hash . bang . ( opt_plus | [ Build.xchgs "-" "reverse" ] ) . programs . eol . entries ]
a list of programs
let programs = label_opt_list_or "program" ( store word ) comma "*"
let protocol = [ label "protocol" . store protocol_re ]
let quoted_string_val = del "\"" "\"" . store /[^"\n]+/ . del "\"" "\""
let rbracket = Util.del_str "}"
The reaction on lookup result like `[NOTFOUND=return]’ TODO: Use case-insensitive regexps when ticket #147 is fixed.
let reaction = let status_kw = /[Ss][Uu][Cc][Cc][Ee][Ss][Ss]/ | /[Nn][Oo][Tt][Ff][Oo][Uu][Nn][Dd]/ | /[Uu][Nn][Aa][Vv][Aa][Ii][Ll]/ | /[Tt][Rr][Yy][Aa][Gg][Aa][Ii][Nn]/ in
let real_server_field = field "weight" sto_num | block "TCP_CHECK" tcp_check_field
A crypttab record
let record = [ seq "entry" . [ label "target" . store target ] . sep_tab . [ label "device" . store fspath ] . (sep_tab . [ label "password" . store fspath ] . ( sep_tab . comma_sep_list "opt")? )? . eol ]
Keyword, followed by optional whitespace and value, followed by EOL.
let record = [ key keyword . (sep_spc . store word)? . eol ]
Generic INI File record
let record ( title:lens ) (entry:lens) = record_noempty title ( entry | empty )
A login.defs record
let record = let value = store /[^ \t\n]+( [ \t]+[^ \t\n]+ )*/ in [ key Rx.word . Sep.space . value . Util.eol ]
A sequence of record_local or record_remote entries
let record = [ seq "entries" . (record_local | record_remote) . eol ]
A standard /etc/services record TODO: make sure a space is added before a comment on new nodes
let record = [ label "service-name" . store word_re . sep_spc . port . del "/" "/" . protocol . ( sep_spc . alias )* . comment_or_eol ]
Default regexp for title_label keyword pattern
let record_label_re = /[^]\n]+/
when type is “local”, there is no “address” field
let record_local = [ label "type" . store "local" ] . Sep.tab . database . Sep.tab . user . Sep.tab . method
INI File Record with no empty lines allowed.
let record_noempty ( title:lens ) (entry:lens) = [ title . entry* ]
Default regexp for title keyword pattern
let record_re = ( /[^]\n\/]+/ - /#comment/ )
let record_remote = [ label "type" . store remtypes ] . Sep.tab . database . Sep.tab . user . Sep.tab . address . Sep.tab . method
non-local connection types
let remtypes = "host" | "hostssl" | "hostnossl"
Run_Alias, see alias_field
let runas_alias = alias_entry "Runas_Alias" "runas_user" sto_to_com
A runas specification for spec, using alias_list for listing users and/or groups used to run a command
let runas_spec_user = alias_list "runas_user" sto_to_com