S | |
schedule, Cron | |
screen, Xorg | |
search, Resolv | |
section, Xorg | |
section_entry, Xorg | |
selectors, Syslog | |
sep, Mke2fs | |
sep_colon | |
sep_moddir, Solaris_System | |
sep_spc, Keepalived | |
service, Nsswitch | |
set_sep_spc, Solaris_System | |
set_value, Solaris_System | |
set_var, Solaris_System | |
shellvar, Cron | |
sortlist, Resolv | |
spec, Sudoers | |
spec_list, Sudoers | |
Split, Util | |
static_ipaddress_field, Keepalived | |
static_routes, Keepalived | |
static_routes_field, Keepalived | |
sto_email_addr, Keepalived | |
sto_num, Keepalived | |
sto_word, Keepalived | |
T | |
tag_spec, Sudoers | |
tcp_check_field, Keepalived | |
time, Cron | |
title | |
title_label, IniFile | |
U | |
user | |
user_alias, Sudoers | |
user_list, Access | |
user_re, Access | |
users, Syslog | |
V | |
videoram, Xorg | |
virtual_server, Keepalived | |
virtual_server_field, Keepalived | |
virtual_server_group, Keepalived | |
virtual_server_group_field, Keepalived | |
vrrp_instance, Keepalived | |
vrrp_instance_field, Keepalived | |
vrrp_sync_group, Keepalived | |
vrrp_sync_group_field, Keepalived | |
vrrpd_conf, Keepalived | |
X | |
xchg, Build | |
xchgs, Build |
Time in the format “@keyword”
let schedule = [ label "schedule" . Util.del_str "@" . store schedule_re ]
The Screen entry of ServerLayout
let screen = [ indent . del /[sS]creen/ "Screen" . label "Screen" . sep_spc . [ label "num" . store int . sep_spc ]? . quoted_string_val . [ sep_spc . label "position" . store to_eol ]? . eol ]
let search = Build.key_value_line "search" Sep.space ( Build.opt_list [label "domain" . store Rx.word] Sep.space )
A section in xorg.conf
let section = [ indent . del "Section" "Section" . sep_spc . sep_dquote . key (section_re|section_re_obsolete) . sep_dquote . eol . section_entry* . indent . del "EndSection" "EndSection" . eol ]
let section_entry = option | screen | display | input_device | driver | identifier | videoram | default_depth | device | entry_generic | empty | comment
a list of selectors, separated by semicolons
let selectors = label_opt_list "selector" selector semicolon
let sep = IniFile.sep /=[ \t]*/ "="
The separator for database entries
let sep_colon = del /:[ \t]*/ ": "
The separator for key/value entries
let sep_colon = del /:[ \t]*/ ": "
The separator of directories in a moddir search path
let sep_moddir = del /[: ]+/ " "
let sep_spc = Sep.space
The service specification like `files’, `db’, or `nis’
let service = [ label "service" . store Rx.word ]
let set_sep_spc = Util.del_opt_ws " "
Sets an integer value or char pointer
let set_value = [ label "value" . store Rx.no_spaces ]
Loads the variable name from a set command, no module
let set_var = [ label "variable" . store Rx.word ]
A shell variable in crontab
let shellvar = let key_re = Shellvars.key_re - "entry" in [ key key_re . sep_eq . Shellvars.simple_value . eol ]
let sortlist = Build.key_value_line "sortlist" Sep.space ( Build.opt_list ipaddr Sep.space )
A user specification, listing colon-separated spec_lists
let spec = [ label "spec" . indent . alias_list "user" sto_to_com_user . sep_cont . spec_list . ( sep_col . spec_list )* . eol ]
Group of hosts with cmnd_spec_list
let spec_list = [ label "host_group" . alias_list "host" sto_to_com_host . sep_eq . cmnd_spec_list ]
The whole string is fed to ip addr add.
let static_ipaddress_field = [ indent . ipaddr . (sep_spc . ipdev)? . comment_or_eol ]
let static_routes = block "static_ipaddress" static_ipaddress_field | block "static_routes" static_routes_field
src $SRC_IP to $DST_IP dev $SRC_DEVICE
let static_routes_field = [ indent . label "route" . [ key "src" . sto_word ] . sep_spc . [ key "to" . sto_word ] . sep_spc . [ key "dev" . sto_word ] . comment_or_eol ]
let sto_email_addr = store Rx.email_addr
let sto_num = store Rx.integer
let sto_word = store word
Tag specification for spec
let tag_spec = [ label "tag" . store /(NO)?(PASSWD|EXEC|SETENV)/ . sep_col ]
let tcp_check_field = field "connect_timeout" sto_num | field "connect_port" sto_num
Time in the format “minute hour dayofmonth month dayofweek”
let time = [ label "time" . minute . sep_spc . hour . sep_spc . dayofmonth . sep_spc . month . sep_spc . dayofweek ]
Uses standard INI File title
let title = IniFile.indented_title IniFile.record_re
Title for record.
let title ( kw:regexp ) = Util.del_str "[" . key kw . Util.del_str "]". eol
Title for record.
let title_label ( name:string ) (kw:regexp) = label name . Util.del_str "[" . store kw . Util.del_str "]". eol
user can be a username or a group
let user = [ label "user" . store user_re ]
let user = [ label "user" . store Rx.word ]
TODO: support for quoted strings
let user = comma_sep_list "user"
User_Alias, see alias_field
let user_alias = alias_entry "User_Alias" "user" sto_to_com
A list of users or netgroups to apply the rule to
let user_list = Build.opt_list ( user|netgroup ) Sep.space
Regex for user/netgroup fields
let user_re = Rx.word - /[Ee][Xx][Cc][Ee][Pp][Tt]/
a list of users or a “*”
let users = label_opt_list_or "user" ( store word ) comma "*"
let videoram = entry_int "VideoRam" /[vV]ideo[rR]am/
let virtual_server = named_block_arg "virtual_server" "ip" "port" virtual_server_field
let virtual_server_field = field "delay_loop" sto_num | field "lb_algo" sto_word | field "lb_kind" sto_word | field "nat_mask" sto_word | field "protocol" sto_word | named_block_arg "real_server" "ip" "port" real_server_field
let virtual_server_group = named_block "virtual_server_group" virtual_server_group_field
let virtual_server_group_field = [ indent . label "vip" . [ ipaddr ] . sep_spc . [ label "port" . sto_num ] . comment_or_eol ]
let vrrp_instance = named_block "vrrp_instance" vrrp_instance_field
let vrrp_instance_field = field "state" sto_word | field "interface" sto_word | field "lvs_sync_daemon_interface" sto_word | field "virtual_router_id" sto_num | field "priority" sto_num | field "advert_int" sto_num | flag "smtp_alert" | flag "nopreempt" | block "authentication" ( field "auth_type" sto_word | field "auth_pass" sto_word ) | block "virtual_ipaddress" static_ipaddress_field
let vrrp_sync_group = named_block "vrrp_sync_group" vrrp_sync_group_field
let vrrp_sync_group_field = block "group" [ indent . key word . comment_or_eol ]
contains subblocks of VRRP synchronization group(s) and VRRP instance(s)
let vrrpd_conf = vrrp_sync_group | vrrp_instance
Replace a pattern with a different label in the tree, thus emulating a key but allowing to replace the keyword with a different value than matched
let xchg ( m:regexp ) (d:string) (l:string) = del m d . label l
Same as xchg, but the pattern is the default string
let xchgs ( m:string ) (l:string) = xchg m m l