K | |
Kdump | |
Keepalived | |
kernel | |
kernel_args, Grub | |
kernel_parameters, Erlang | |
key_comment, Authorized_Keys | |
key_opt_rtable_line, Ntpd | |
key_opt_value_line, BootConf | |
key_opt_weight_rtable_line, Ntpd | |
key_options, Authorized_Keys | |
key_re | |
key_type, Authorized_Keys | |
key_value | |
key_value_line | |
key_value_line_comment | |
key_ws_value | |
keys | |
keyword, Ntpd | |
Keywords | |
knode, Test_Xml | |
Known_Hosts | |
Koji | |
kv | |
kw_arg, Grub | |
kw_boot_arg, Grub | |
kw_menu_arg, Grub | |
kw_pres, Grub | |
kw_word, Xymon_Alerting | |
kw_word_filters_opt, Xymon_Alerting |
Core Erlang kernel app configuration
let kernel = application "kernel" kernel_parameters
let kernel = [ command /kernel\$?/ "\t" . (spc . ([switch "type" . eq . store /[a-z]+/] |[switch "no-mem-option"]))* . spc . kernel_args ]
Parse the file name and args on a kernel or module line.
let kernel_args = let arg = /[A-Za-z0-9_.$-]+/ - /type|no-mem-option/ in store /(\([a-z0-9,]+\))?\/[^ \t\n]*/ . (spc . multiboot_arg)? . (spc . [ key arg . (eq. store /([^ \t\n])*/)?])* . eol
Config parameters accepted for kernel app
let kernel_parameters = value "browser_cmd" path | value "dist_auto_connect" (store /never|once/) | value "error_logger" (store /tty|false|silent/) | value "net_setuptime" integer | value "net_ticktime" integer | value "shutdown_timeout" integer | value "sync_nodes_timeout" integer | value "start_dist_ac" boolean | value "start_boot_server" boolean | value "start_disk_log" boolean | value "start_pg2" boolean | value "start_timer" boolean
let key_comment = [ label "comment" . store Rx.space_in ]
A subnode with a keyword, an optional routing table id and an end of line.
let key_opt_rtable_line (kw:regexp) (sto:lens) = let rtable = [ Util.del_str "rtable" . space . label "rtable" . store rtable_re ] in [ key kw . space . sto . (space . rtable)? . eol ]
A subnode with a keyword, an optional part consisting of a separator and a storing lens, and an end of line
let key_opt_value_line (kw:regexp) (sto:lens) = [ key kw . (space . sto)? . eol ]
A subnode with a keyword, an optional routing table id, an optional weight-value and an end of line.
let key_opt_weight_rtable_line (kw:regexp) (sto:lens) = let rtable = [ Util.del_str "rtable" . space . label "rtable" . store rtable_re ] in let weight = [ Util.del_str "weight" . space . label "weight" . store weight_re ] in [ key kw . space . sto . (space . weight)? . (space . rtable)? . eol ]
A list of key options
let key_options = [ label "options" . Build.opt_list option Sep.comma ]
let key_re = /\$?[A-Za-z0-9_.-]+/
let key_re = /[^=# \t\n]+/
let key_type = let key_type_re = /ecdsa-sha2-nistp[0-9]+/ | /ssh-[a-z0-9]+/ in [ label "type" . store key_type_re ]
Same as key_value_line, but does not end with an end of line
let key_value (kw: regexp) (sep:lens) (sto:lens) = [ key kw . sep . sto ]
let key_value = Build.key_value Rx.word Sep.equal (store Rx.word)
A subnode with a keyword, a separator and a storing lens, and an end of line
let key_value_line (kw:regexp) (sep:lens) (sto:lens) = [ key kw . sep . sto . eol ]
let key_value_line = Build.key_value_line Rx.word Sep.equal (store Rx.word)
Same as key_value_line, but allows to have a comment in the end of a line and an end of line
let key_value_line_comment (kw:regexp) (sep:lens) (sto:lens) (comment:lens) = [ key kw . sep . sto . (eol|comment) ]
let key_value_line_comment = Build.key_value_line_comment Rx.word Sep.equal (store Rx.word) Util.comment
Store a key/value pair where key and value are separated by whitespace and the value goes to the end of the line.
let key_ws_value (kw:regexp) = key_value_line kw Util.del_ws_spc (store Rx.space_in)
let key_ws_value = Build.key_ws_value Rx.word
Match any possible key except commands and block names.
let keys = Rx.word - (commands | block_names)
let keys = "# Example keys, one of each type # ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDpWrKYsEsVUyuwMN4ReBN/TMGsaUWzDKDz/uQr6MlNNM95MDK/BPyJ+DiBiNMFVLpRt3gH3eCJBLJKMuUDaTNy5uym2zNgAaAIVct6M2GHI68W3iY3Ja8/MaRPbyTpMh1O74S+McpAW1SGL2YzFchYMjTnu/kOD3lxiWNiDLvdLFZu0wPOi7CYG37VXR4Thb0cC92zqnCjaP1TwfhpEYUZoowElYkoV2vG+19O6cRm/zduYcf8hmegZKB4GFUJTtZ2gZ18XJDSQd0ykK3KPt/+bKskdrtfiOwSZAmUZmd2YuAlY6+CBn1T3UBdQntueukd0z1xhd6SX7Bl8+qyqLQ3 user@example ssh-dsa AAAA user@example ecdsa-sha2-nistp256 AAAA user@example ssh-ed25519 AAAA user@example # Example comments ssh-dsa AAAA ssh-dsa AAAA user@example "
let keyword = listen | server | servers | sensor
A simple flag function
let knode (r:regexp) = [ key r ]
let kv = [ indent . key key_re . del sep " " . store value_re . eol ]
options with only one arg can be directly mapped to key = value
let kv = Build.key_value_line_comment simple_keys space (store no_space) comment
A key-value pair, supporting flags and empty values
let kv = [ key /[A-Za-z0-9:_.-]+/ . (Sep.equal . store (Rx.space_in?))? . Util.eol ]
let kw_arg (kw:regexp) (indent:string) (dflt_sep:string) = [ command kw indent . value_sep dflt_sep . value_to_eol . eol ]
let kw_boot_arg (kw:regexp) = kw_arg kw "\t" " "
let kw_menu_arg (kw:regexp) = kw_arg kw "" " "
let kw_pres (kw:string) = [ opt_ws . key kw . del_to_eol . eol ]
A key=value value
let kw_word (kw:regexp) = Build.key_value kw equal store_word
A kw_word entry with optional filters
let kw_word_filters_opt (kw:string) = [ key kw . equal . store_word . filters_opt ]