Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
O
 opt_eol, Keepalived
 opt_hash, Syslog
 opt_list
 opt_plus, Syslog
 opt_space
 opt_tab, Sep
 opt_ws, Grub
 option
 option_kw, Hosts_Access
 options
 optval
 org, Desktop.Freedesktop
 origin_list, Access
P
 Pam
 PamConf
 param, NagiosConfig
 param_def, NagiosConfig
 parameter, Sudoers
 parameter_flag, Sudoers
 parameter_integer, Sudoers
 parameter_list, Sudoers
 parameter_lists, Sudoers
 parameter_string, Sudoers
 parameters, Rabbitmq
 partition, FAI_DiskConfig
 password_arg, Grub
 path
 Pbuilder
 period, Anacron
 period_name, Anacron
 period_name_re, Anacron
 Pg_Hba
 pipe, Syslog
 plus
 port, Services
 Postfix_Transport
 Postfix_Virtual
 Postgresql
 prefixlen, Keepalived
 program, Syslog
 Program matching, Syslog
 programs, Syslog
 prolog, Test_Xml.Xml
 Prolog and declarations, Test_Xml
 protocol, Services
 Protocols
 Puppet_Auth
 puppetfileserver.aug
Q
 Qpid
 qpidc, Test_Qpid
 qpidd, Test_Qpid
 quote, Quote
 Quote
 QUOTE SEPARATORS, Quote
 quote_opt, Quote
 quote_opt_nil
 quote_spaces
 quoted, Erlang
 QUOTED VALUES, Quote
 quoted_string_val, Xorg
 QUOTING FUNCTIONS, Quote
let opt_eol = del /[ \t]*\n?/ " "
let opt_hash = del /#?/ ""
deletes an optional # sign
let opt_list (lns:lens) (sep:lens) = lns . ( sep . lns )*
Same as list, but there might be only one element in the list
let opt_list (lns:lens) = rspace lbrack . Build.opt_list lns (lrspace comma) . lspace rbrack
An optional list of elements, in square brackets
let opt_list = Build.opt_list [ key Rx.word ] Sep.space
let opt_plus = del /\+?/ ""
deletes an optional + sign
let opt_space = /[ \t]*/
An optional space or tab
let opt_space = del Rx.opt_space ""
Deletes a Rx.opt_space and default to an empty string
let opt_tab = del Rx.opt_space "\t"
Deletes a Rx.opt_space and default to a tab
let opt_ws = Util.del_opt_ws ""
let option = let kv_re = "command" | "environment" | "from" | "permitopen" | "principals" | "tunnel" in let flag_re = "cert-authority" | "no-agent-forwarding" | "no-port-forwarding" | "no-pty" | "no-user-rc" | "no-X11-forwarding" in let option_value = Util.del_str "\"" . store /[^\n"]+/ . Util.del_str "\"" in Build.key_value kv_re Sep.equal option_value | Build.flag flag_re
A key option
let option =
let option = [ key option_kw . ( del /([ \t]*=[ \t]*|[ \t]+)/ " " . sto_to_colon )? ]
Optional extensions defined in hosts_options(5)
let option = let value_start = label "value" . Sep.equal in [ label "option" . store Rx.word . (Quote.quote_spaces value_start)? ]
part of method
let option = [ indent . del /[oO]ption/ "Option" . label "Option" . sep_spc . quoted_string_val . [ label "value" . sep_spc . quoted_string_val ]* . eol ]
let option_kw = "severity" | "spawn" | "twist" | "keepalive" | "linger" | "rfc931" | "banners" | "nice" | "setenv" | "umask" | "user" | /allow/i | /deny/i
Since either an option or a shell command can be given, use an explicit list of known options to avoid misinterpreting a command as an option
let options = let opt_value = /[^#" \t\n\\\\]+|"[^#"\n\\\\]*"/ in let option = [ key Rx.word . (del /[ \t]*=[ \t]*/ "=" . store opt_value)? ] in [ key "options" . sep_space . sto_no_spaces . (sep_space . option)* . Util.comment_or_eol ]
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" |"single-request-reopen") | ip6_dotint in Build.key_value_line_comment "options" Sep.space (Build.opt_list options_entry Sep.space) comment_eol
Options values
let options = "# Example options no-pty ssh-dsa AAAA no-pty,command=\"foo\" ssh-dsa AAAA no-pty,command=\"foo bar\" ssh-dsa AAAA no-pty,from=\"example.com,10.1.1.0/16\" ssh-dsa AAAA no-pty,environment=\"LANG=en_GB.UTF8\" ssh-dsa AAAA "
let optval = /[A-Za-z0-9_.:-]+/
http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
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
origin_list can be a single ipaddr/originname/domain/fqdn or a list of those values
Parses /etc/pam.conf and /etc/pam.d/* service files
Parses /etc/pam.conf files
let param = [ Util.indent . param_def . [ Sep.space . param_def ]* . Util.eol ]
Params can have sub params
let param_def = let space_in = /[^ \t\n][^\n=]*[^ \t\n]|[^ \t\n]/ in key /[A-Za-z0-9_]+/ . Sep.space_equal . store space_in
define a field
let parameter = parameter_flag | parameter_integer | parameter_string | parameter_lists
A single 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" | "closefrom_override" | "closefrom_override" | "compress_io" | "fast_glob" | "log_input" | "log_output" | "pwfeedback" | "umask_override" | "use_pty"
A flag parameter for defaults
let parameter_integer_nobool_kw = "passwd_tries"
An integer parameter for defaults
let parameter_list = parameter . ( sep_com . parameter )*
A list of comma-separated parameters for defaults
let parameter_lists_kw = "env_check" | "env_delete" | "env_keep"
A single list 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"
A string parameter for defaults
let parameters = listeners | ssl_options | disk_free_limit | log_levels | Erlang.value "vm_memory_high_watermark" Erlang.decimal | Erlang.value "frame_max" Erlang.integer | Erlang.value "heartbeat" Erlang.integer | Erlang.value /default_(vhost|user|pass)/ Erlang.glob | Erlang.value_list "default_user_tags" Erlang.bare | Erlang.value_list "default_permissions" Erlang.glob | cluster_nodes | Erlang.value_list "server_properties" Erlang.bare | Erlang.value "collect_statistics" Erlang.bare | Erlang.value "collect_statistics_interval" Erlang.integer | Erlang.value_list "auth_mechanisms" Erlang.quoted | Erlang.value_list "auth_backends" Erlang.bare | Erlang.value "delegate_count" Erlang.integer | Erlang.value_list "trace_vhosts" Erlang.bare | tcp_listen_options | Erlang.value "hipe_compile" Erlang.boolean | Erlang.value "msg_store_index_module" Erlang.bare | Erlang.value "backing_queue_module" Erlang.bare | Erlang.value "msg_store_file_size_limit" Erlang.integer | Erlang.value "queue_index_max_ journal_entries" Erlang.integer
Top-level parameters for the lens
let partition = [ label "partition" . Util.del_str "." . store /[0-9]+/ ]
An optional partition number for disk
let password_arg = [ key "password" . (spc . [ switch "md5" ])? . (spc . [ switch "encrypted" ])? . spc . store (/[^ \t\n]+/ - /--[^ \t\n]+/) . (spc . [ label "file" . store /[^ \t\n]+/ ])? . eol ]
let path = /[^-+#: \t\n][^#: \t\n]*/
let path = quoted
Store a path (quoted)
let path = [ label "path" . store /[^# \t\n][^ \t\n]*/ . Util.eol ]
Parses /etc/pbuilderrc, /etc/pbuilder/pbuilderrc
let period = [ label "period" . store Rx.integer ]
let period_name = [ label "period_name" . Util.del_str "@" . store period_name_re ]
In the format “@keyword”
let period_name_re = "monthly"
The valid values for period_name.
Parses PostgreSQL’s pg_hba.conf
let pipe = Util.del_str "|"
Deletes a pipe and default to it
let plus = Util.del_str "+"
let plus = Util.del_str "+"
Deletes a plus and default to it
let port = [ label "port" . store num_re ]
Parses /etc/postfix/transport
Parses /etc/postfix/virtual
Parses postgresql.conf
let prefixlen = [ label "prefixlen" . Util.del_str "/" . sto_num ]
A prefix for IP addresses
let program = [ label "program" . opt_hash . bang . ( opt_plus | [ Build.xchgs "-" "reverse" ] ) . programs . eol . entries ]
a program begins with an optional hash, a bang, and an optional + or -
let programs = label_opt_list_or "program" (store word) comma "*"
a list of programs
test Xml.prolog get "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" = { "#declaration" { "#attribute" { "version" = "1.0" } { "encoding" = "UTF-8" } } }
The XML prolog tag is mapped in a “#declaration” node, which contains an “#attribute” node with various attributes of the tag.
let protocol = [ label "protocol" . store protocol_re ]
Parses /etc/protocols
Parses /etc/puppet/auth.conf
Parses Apache Qpid daemon/client configuration files
let qpidc = "# Configuration file for the qpid c++ client library. Entries are of # the form: # name=value ssl-cert-db=/root/certs/server_db ssl-port=5674 "
let qpidd = "# Configuration file for qpidd. Entries are of the form: # name=value # (Note: no spaces on either side of '='). Using default settings: # \"qpidd --help\" or \"man qpidd\" for more details. cluster-mechanism=ANONYMOUS auth=no max-connections=22000 syslog-name=qpidd1 "
let quote = del /["']/ "\""
A quote, either double or single, default to double
Generic module providing useful primitives for quoting
let quote_opt = del /["']?/ "\""
An optional quote, either double or single, default to double
let quote_opt_nil = del /["']?/ ""
An optional quote, either double or single, default to nothing
let quote_opt_nil = let body = store Quote.any_opt_re in [ label "quote_opt_nil" . Quote.do_quote_opt_nil body ]?
let quote_spaces (lns:lens) =
Make quotes mandatory if value contains spaces, and optional if value doesn’t contain spaces.
Store a quoted value
let quoted_string_val = del "\"" "\"" . store /[^"\n]+/ . del "\"" "\""
Close