T | |
tag_spec, Sudoers | |
tcp_check_field, Keepalived | |
terminal, Grub | |
time, Cron | |
title | |
title_label, IniFile | |
trim, Host_Conf | |
U | |
user | |
user_alias, Sudoers | |
user_list, Access | |
user_re, Access | |
users, Syslog | |
V | |
value_list, Aliases | |
value_sep, Grub | |
value_to_eol, Grub | |
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_script, Keepalived | |
vrrp_script_field, Keepalived | |
vrrp_sync_group, Keepalived | |
vrrp_sync_group_field, Keepalived | |
vrrpd_conf, Keepalived | |
W | |
word | |
X | |
xchg, Build | |
xchgs, Build |
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
let terminal = [ command "terminal" "" . ([ spc . switch /dumb|no-echo|no-edit|silent/ ] |[ spc . switch_arg /timeout|lines/ ])* . [ spc . key /console|serial|hercules/ ]* . eol ]
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
let title = del /title[ \t=]+/ "title " . value_to_eol . eol
Title for record.
let title (kw:regexp) = Util.del_str "[" . key kw . Util.del_str "]". eol
An IniFile.title
let title = IniFile.title IniFile.record_re
Title for record.
let title_label (name:string) (kw:regexp) = label name . Util.del_str "[" . store kw . Util.del_str "]". eol
let trim = let trim_list = Build.opt_list [seq "trim" . store Rx.word] (del /[:;,]/ ":") in Build.key_value_line "trim" Sep.space trim_list
user can be a username, username@hostname or a group
let user = [ label "user" . ( store user_re | store Rx.word . Util.del_str "@" . [ label "host" . store Rx.word ] ) ]
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|group|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 "*"
List of destinations
let value_list = Build.opt_list ([ label "value" . store destination]) comma
let value_sep (dflt:string) = del /[ \t]*[ \t=][ \t]*/ dflt
let value_to_eol = store /[^= \t\n][^\n]*[^= \t\n]|[^= \t\n]/
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 | field "garp_master_delay" sto_num | field "notify_master" sto_to_eol | field "notify_backup" sto_to_eol | field "notify_fault" sto_to_eol | flag "smtp_alert" | flag "nopreempt" | flag "ha_suspend" | flag "debug" | block "authentication" ( field "auth_type" sto_word | field "auth_pass" sto_word ) | block "virtual_ipaddress" static_ipaddress_field | block "track_interface" ( flag word ) | block "track_script" ( flag word )
let vrrp_script = named_block "vrrp_script" vrrp_script_field
let vrrp_script_field = field "script" sto_to_eol | field "interval" sto_num | field "weight" sto_num
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 | vrrp_script
let word = /[^#, \n\t\/]+/
let word = /[^#, \n\t\/]+/
let word = /[^=\n\t ]+/
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