R | |
rabbit, Rabbitmq | |
ratelimit, Chrony | |
reaction, Nsswitch | |
real_server_field, Keepalived | |
realm_entry, JettyRealm | |
recipient, Xymon_Alerting | |
record | |
record_local, Pg_Hba | |
record_noempty, IniFile | |
record_remote, Pg_Hba | |
recover, Xymon_Alerting | |
refclock, Chrony | |
refid_re, Ntpd | |
repeat, Xymon_Alerting | |
repo, Yaml | |
reset_counters, Puppet_Auth | |
rspace, Erlang | |
rtable_re, Ntpd | |
rule, Xymon_Alerting | |
rule_filter, Xymon_Alerting | |
runas_alias, Sudoers | |
runas_spec, Sudoers |
The rabbit Erlang.application config
let rabbit = Erlang.application "rabbit" parameters
ratelimit/cmdratelimit has specific syntax
let ratelimit = [ Util.indent . key /(cmd)?ratelimit/ . [ space . key ratelimit_options . space . store no_space ]* . eol ]
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 action_kw = /[Rr][Ee][Tt][Uu][Rr][Nn]/ | /[Cc][Oo][Nn][Tt][Ii][Nn][Uu][Ee]/ | /[Mm][Ee][Rr][Gg][Ee]/ in let negate = [ Util.del_str "!" . label "negate" ] in let reaction_entry = [ label "status" . negate? . store status_kw . Util.del_str "=" . [ label "action" . store action_kw ] ] in Util.del_str "[" . [ label "reaction" . (Build.opt_list reaction_entry Sep.space) ] . Util.del_str "]"
let real_server_field = let num_re = "weight" in let flag_re = "inhibit_on_failure" in let to_eol_re = /notify_(up|down)/ in field num_re sto_num | flag flag_re | field to_eol_re sto_to_eol | block "TCP_CHECK" tcp_check_field | block "MISC_CHECK" misc_check_field | block "SMTP_CHECK" smtp_check_field | block /(HTTP|SSL)_GET/ http_check_field
let realm_entry = [ label "user" . [ label "username" . store Rx.word ] . del /[ \t]*:[ \t]*/ ": " . [ label "password" . store Rx.word ] . [ label "realm" . comma_sep . store Rx.word ]* . Util.eol ]
Recipients are made out of any of the above recipient definitions
let recipient = mail | script | ignore | format | repeat | unmatched | stop | macro
An sssd.conf record
let record = IniFile.record title entry
let record = IniFile.record title entry
let record = [ seq "record" . entries+ ]
let record = let option_sep = [ label "operation" . store /[+-]/]? . Sep.equal in let option = Build.key_value /arch|trusted/ option_sep (store Rx.word) in let options = [ label "options" . Util.del_str "[" . Sep.opt_space . Build.opt_list option Sep.space . Sep.opt_space . Util.del_str "]" . sep_ws ] in [ Util.indent . seq "source" . [ label "type" . store word ] . sep_ws . options? . [ label "uri" . store uri ] . sep_ws . [ label "distribution" . store word ] . [ label "component" . sep_ws . store word ]* . del /[ \t]*(#.*)?/ "" . eol ]
let record = IniFile.record title entry
let record = let moreusers = Build.opt_list [ label "moreusers" . store word ] Sep.comma in [ seq "host" . [ label "host" . store word ] . Util.del_ws_tab . [ label "dhcp" . store word ] . Util.del_ws_tab . [ label "user" . store word ] . (Util.del_ws_tab . moreusers)? . (Util.comment|Util.eol) ]
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 ]
let record = [ key word . (Util.del_ws_tab . sto_line)? . Util.eol ]
let record = IniFile.record title entry
A sequence of record_local or record_remote entries
let record = [ seq "entries" . (record_local | record_remote) . eol ]
let record = [ label "pattern" . store /\[?[A-Za-z0-9@\*.-]+\]?(:?[A-Za-z0-9]*)*/ . space_or_eol . username . colon . password . Util.eol ]
let record = [ label "pattern" . store /[A-Za-z0-9@\*.-]+/ . space_or_eol . (transport | nexthop_smtp) . Util.eol ]
let record = let destinations = Build.opt_list destination comma in [ label "pattern" . word . space_or_eol Rx.space " " . destinations . Util.eol ]
let record = let operator = [ label "operator" . store "~" ] in [ Util.indent . key "path" . (Sep.space . operator)? . Sep.space . store /[^~# \t\n][^#\n]*[^# \t\n]|[^~# \t\n]/ . Util.eol . reset_counters . (Util.empty | Util.comment | setting)* . setting ]
An IniFile.record
let record = IniFile.record title entry
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 | port_range) . del "/" "/" . protocol . ( sep_spc . alias )* . comment_or_eol ]
Use the non-indented empty
let record = IniFile.record_noempty title (entry|empty)
An IniFile.record
let record = IniFile.record title (entry|include)
A valid record, one line in the file.
let record = [ seq "record" . sep_opt_spc . [ label "type" . store type ] . sep_spc . [ label "path" . store field ] . ( sep_spc . [ label "mode" . store mode ] . ( sep_spc . [ label "uid" . store field ] . ( sep_spc . [ label "gid" . store field ] . ( sep_spc . [ label "age" . store age ] . ( sep_spc . [ label "argument" . store argument ] )? )? )? )? )? . Util.comment_or_eol ]
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* ]
let record_remote = [ label "type" . store remtypes ] . Sep.tab . database . Sep.tab . user . Sep.tab . address . Sep.tab . method
The recover filter definition
let recover = flag "RECOVER"
refclock has specific syntax
let refclock = [ Util.indent . key "refclock" . space . [ label "driver" . store word ] . space . [ label "parameter" . store no_space ] . ( space . ( [ key refclock_flags ] | [ key refclock_options . space . store no_space ] ) )* . eol ]
string with length < 5
let refid_re = /[A-Za-z0-9_.-]{1,5}/
The repeat recipient definition
let repeat = kw_word_filters_opt "REPEAT"
let _repo = [ key Rx.word . colon . space . (val | mval) . eol ]
let reset_counters = counter "environment" . counter "method" . counter "allow" . counter "allow_ip"
Add spaces to the right of char
let rspace (char:string) = del (char . /[ \t\n]*/ ) char
let rtable_re = Rx.byte
Rules are made of rule_filter and then recipients sperarated by a whitespace
let rule = [ seq "rules" . filters . ws_or_eol . recipients . eol ]
Filters are made out of any of the above filter definitions
let rule_filter = page | group | host | service | color | time | duration | recover | notice
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