M | |
meta_release, Test_Apt_Update_Manager | |
misc_check, Test_Keepalived | |
mount_option, FAI_DiskConfig | |
mount_option_value, FAI_DiskConfig | |
mount_options, FAI_DiskConfig | |
mountpoint, FAI_DiskConfig | |
mountpoint_kw, FAI_DiskConfig | |
multi, Test_Systemd | |
multiline_ace, Test_IniFile | |
multiline_nl, Test_IniFile | |
multiline_test, Test_IniFile | |
N | |
name | |
neg1, Rx | |
new_conf | |
no_space, Chrony | |
no_spaces, Rx | |
nocomma, Test_Aliases | |
num, Cron | |
number, Chrony | |
number_re, Postgresql | |
O | |
octal, Rx | |
opt_hash, Syslog | |
opt_plus, Syslog | |
opt_space | |
opt_tab, Sep | |
option, FAI_DiskConfig | |
option_kw, Hosts_Access | |
options, Test_Authorized_Keys | |
optval, Crypttab | |
P | |
partition, FAI_DiskConfig | |
period_name_re, Anacron | |
pipe, Syslog | |
plus, Syslog | |
protocol, Syslog | |
Q | |
qpidc, Test_Qpid | |
qpidd, Test_Qpid | |
quote, Quote | |
quote_opt, Quote | |
quote_opt_nil, Quote | |
quoted_string_val, Xorg | |
R | |
raidoption, FAI_DiskConfig | |
rbrace, Erlang | |
rbrack, Erlang | |
rbracket, Sep | |
record_ace, Test_IniFile | |
record_acf, Test_IniFile | |
record_ade, Test_IniFile | |
record_adf, Test_IniFile | |
record_bce, Test_IniFile | |
record_bcf, Test_IniFile | |
record_bde, Test_IniFile | |
record_bdf, Test_IniFile | |
record_label_re, IniFile | |
record_re, IniFile | |
reldecimal, Rx | |
release_upgrades, Test_Apt_Update_Manager | |
relinteger, Rx | |
relinteger_noplus, Rx | |
remtypes, Pg_Hba | |
resize, FAI_DiskConfig | |
rglob, Erlang | |
router, Sysconfig_Route |
let meta_release = "# default location for the meta-release file [METARELEASE] URI = http://changelogs.ubuntu.com/meta-release URI_LTS = http://changelogs.ubuntu.com/meta-release-lts URI_UNSTABLE_POSTFIX = -development URI_PROPOSED_POSTFIX = -proposed "
An example of a MISC health checker
let misc_check = "virtual_server 192.168.1.11 22 { real_server 10.20.40.10 22 { MISC_CHECK { misc_path /usr/local/bin/server_test misc_timeout 3 misc_dynamic } } } " test Keepalived.lns get misc_check = { "virtual_server" { "ip" = "192.168.1.11" } { "port" = "22" } { "real_server" { "ip" = "10.20.40.10" } { "port" = "22" } { "MISC_CHECK" { "misc_path" = "/usr/local/bin/server_test" } { "misc_timeout" = "3" } { "misc_dynamic" } } } }
Counting options
let mount_option = [ seq "mount_option" . store /[^,= \t\n]+/ . mount_option_value? ]
let mount_option_value = [ label "value" . Util.del_str "=" . store /[^,= \t\n]+/ ]
An array of mount_options
let mount_options = [ label "mount_options" . counter "mount_option" . Build.opt_list mount_option Sep.comma ]
let mountpoint_kw = "-" (* do not mount *) | "swap" (* swap space *)
let multi = "[Unit] After=syslog.target network.target Also=canberra-system-shutdown.service canberra-system-shutdown-reboot.service Before=sysinit.target shutdown.target CapabilityBoundingSet=CAP_SYS_ADMIN CAP_SETUID CAP_SETGID Conflicts=emergency.service emergency.target ControlGroup=%R/user/%I/shared cpu:/ ListenNetlink=kobject-uevent 1 Requires=shutdown.target umount.target final.target Sockets=udev-control.socket udev-kernel.socket WantedBy=halt.target poweroff.target Wants=local-fs.target swap.target Wants=local-fs.target \ swap.target Wants=local-fs.target\ swap.target Wants= local-fs.target "
let multiline_ace = IniFile.entry_multiline IniFile.entry_re sep_ace comment_ace
let multiline_nl = "test_ace =\n val2\n val3\n"
let multiline_test = "test_ace = val1\n val2\n val3\n"
let name = /([^ \t\n#:|@]+|"[^"|\n]*")/ (* " make emacs calm down *)
let name = /[^@%# \t\n][^ \t\n]*/
LVM volume group name
let name = [ label "name" . store /[^\/ \t\n]+/ ]
Anything but a space, a comma or a comment sign
let neg1 = /[^,# \n\t]+/
let new_conf = " ACTIVEMQ_HOME=/usr/local/share/activemq ACTIVEMQ_BASE=${ACTIVEMQ_HOME} "
let new_conf = "<beans> <broker xmlns=\"http://activemq.apache.org/schema/core\" brokerName=\"localhost\" dataDirectory=\"${activemq.data}\"> <transportConnectors> <transportConnector name=\"openwire\" uri=\"tcp://127.0.0.1:61616\"/> </transportConnectors> </broker> </beans> "
let new_conf = "### Comment admin: password, admin "
let new_conf = "# Comment admin readonly "
let new_conf = "# Comment admin password "
let new_conf = "CLOUD_DOMAIN=\"rhcloud.com\" VALID_GEAR_SIZES=\"small,medium\" DEFAULT_MAX_GEARS=\"100\" DEFAULT_GEAR_CAPABILITIES=\"small\" DEFAULT_GEAR_SIZE=\"small\" MONGO_HOST_PORT=\"localhost:27017\" MONGO_USER=\"openshift\" MONGO_PASSWORD=\"mooo\" MONGO_DB=\"openshift_broker_dev\" MONGO_SSL=\"false\" ENABLE_USAGE_TRACKING_DATASTORE=\"false\" ENABLE_USAGE_TRACKING_AUDIT_LOG=\"false\" USAGE_TRACKING_AUDIT_LOG_FILE=\"/var/log/openshift/broker/usage.log\" ENABLE_ANALYTICS=\"false\" ENABLE_USER_ACTION_LOG=\"true\" USER_ACTION_LOG_FILE=\"/var/log/openshift/broker/user_action.log\" AUTH_PRIVKEYFILE=\"/etc/openshift/server_priv.pem\" AUTH_PRIVKEYPASS=\"\" AUTH_PUBKEYFILE=\"/etc/openshift/server_pub.pem\" AUTH_RSYNC_KEY_FILE=\"/etc/openshift/rsync_id_rsa\" AUTH_SCOPE_TIMEOUTS=\"session=1.days|7.days, *=1.months|6.months\" ENABLE_MAINTENANCE_MODE=\"false\" MAINTENANCE_NOTIFICATION_FILE=\"/etc/openshift/outage_notification.txt\" DOWNLOAD_CARTRIDGES_ENABLED=\"false\" "
let new_conf = "Listen 127.0.0.1:8080 User nobody Group apache include /etc/httpd/conf.d/ruby193-passenger.conf PassengerUser apache PassengerMaxPoolSize 80 PassengerMinInstances 2 PassengerPreStart http://127.0.0.1:8080/ PassengerUseGlobalQueue off RackBaseURI /broker PassengerRuby /var/www/openshift/broker/script/broker_ruby <Directory /var/www/openshift/broker/httpd/root/broker> Options -MultiViews </Directory> "
let new_conf = "[ {\"quickstart\": { \"id\": \"1\", \"name\":\"CakePHP\", \"website\":\"http://cakephp.org/\", \"initial_git_url\":\"git://github.com/openshift/cakephp-example.git\", \"cartridges\":[\"php-5.4\",\"mysql-5.1\"], \"summary\":\"CakePHP is a rapid development framework for PHP which uses commonly known design patterns like Active Record, Association Data Mapping, Front Controller and MVC.\", \"tags\":[\"php\",\"cakephp\",\"framework\"], \"admin_tags\":[] }}, {\"quickstart\": { \"id\": \"2\", \"name\":\"Django\", \"website\":\"https://www.djangoproject.com/\", \"initial_git_url\":\"git://github.com/openshift/django-example.git\", \"cartridges\":[\"python-2.7\"], \"summary\":\"A high-level Python web framework that encourages rapid development and clean, pragmatic design. Administrator user name and password are written to $OPENSHIFT_DATA_DIR/CREDENTIALS.\", \"tags\":[\"python\",\"django\",\"framework\"], \"admin_tags\":[] }}, {\"quickstart\":{ \"id\": \"4\", \"name\":\"Drupal\", \"website\":\"http://drupal.org/\", \"initial_git_url\":\"git://github.com/openshift/drupal-example.git\", \"cartridges\":[\"php-5.4\",\"mysql-5.1\"], \"summary\":\"An open source content management platform written in PHP powering millions of websites and applications. It is built, used, and supported by an active and diverse community of people around the world. Administrator user name and password are written to $OPENSHIFT_DATA_DIR/CREDENTIALS.\", \"tags\":[\"php\",\"drupal\",\"wiki\",\"framework\",\"instant_app\"], \"admin_tags\":[] }}, {\"quickstart\":{ \"id\": \"6\", \"name\":\"Ruby on Rails\", \"website\":\"http://rubyonrails.org/\", \"initial_git_url\":\"git://github.com/openshift/rails-example.git\", \"cartridges\":[\"ruby-1.9\",\"mysql-5.1\"], \"summary\":\"An open source web framework for Ruby that is optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration.\", \"tags\":[\"ruby\",\"rails\",\"framework\"], \"admin_tags\":[] }}, {\"quickstart\":{ \"id\": \"8\", \"name\":\"WordPress\", \"website\":\"https://wordpress.org\", \"initial_git_url\":\"git://github.com/openshift/wordpress-example.git\", \"cartridges\":[\"php-5.4\",\"mysql-5.1\"], \"summary\":\"A semantic personal publishing platform written in PHP with a MySQL back end, focusing on aesthetics, web standards, and usability. Administrator user name and password are written to $OPENSHIFT_DATA_DIR/CREDENTIALS.\", \"tags\":[\"php\",\"wordpress\",\"blog\",\"framework\",\"instant_app\"], \"admin_tags\":[] }} ]"
No spaces or comment characters
let no_space = /[^ \t\r\n!;#%]+/
A string with no spaces
let no_spaces = /[^ \t\r\n]+/
Don’t have to have whitespace after a comma
let nocomma = "alias: target1,target2\n"
let num = /[0-9*][0-9\/,*-]*/
let number = integer | decimal
A relative decimal number, optionally with unit
let number_re = Rx.reldecimal . /[kMG]?B|[m]?s|min|h|d/?
An octal value
let octal = /0[0-7]+/
deletes an optional # sign
let opt_hash = del /#?/ ""
deletes an optional + sign
let opt_plus = del /\+?/ ""
An optional space or tab
let opt_space = /[ \t]*/
Deletes a Rx.opt_space and default to an empty string
let opt_space = del Rx.opt_space ""
Deletes a Rx.opt_space and default to a tab
let opt_tab = del Rx.opt_space "\t"
let option =
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 option_kw = "severity" | "spawn" | "twist" | "keepalive" | "linger" | "rfc931" | "banners" | "nice" | "setenv" | "umask" | "user" | /allow/i | /deny/i
let options = "# Example options no-pty ssh-dsa AAAA no-pty ssh-ed25519 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_.:-]+/
An optional partition number for disk
let partition = [ label "partition" . Util.del_str "." . store /[0-9]+/ ]
The valid values for period_name.
let period_name_re = "monthly"
Deletes a pipe and default to it
let pipe = Util.del_str "|"
Deletes a plus and default to it
let plus = Util.del_str "+"
means UDP means TCP
let protocol = /@{1,2}/
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 "
A quote, either double or single, default to double
let quote = del /["']/ "\""
An optional quote, either double or single, default to double
let quote_opt = del /["']?/ "\""
An optional quote, either double or single, default to nothing
let quote_opt_nil = del /["']?/ ""
let quoted_string_val = del "\"" "\"" . store /[^"\n]+/ . del "\"" "\""
let raidoption =
Right square bracket
let rbrace = "}"
Right curly brackets
let rbrack = "]"
let rbracket = Util.del_str ")"
let record_ace = IniFile.record title_ace entry_ace
let record_acf = IniFile.record_noempty title_acf entry_acf
let record_ade = IniFile.record title_ade entry_ade
let record_adf = IniFile.record_noempty title_adf entry_adf
let record_bce = IniFile.record title_bce entry_bce
let record_bcf = IniFile.record_noempty title_bce entry_bcf
let record_bde = IniFile.record title_bde entry_bde
let record_bdf = IniFile.record_noempty title_bdf entry_bdf
Default regexp for title_label keyword pattern
let record_label_re = /[^]\r\n]+/
Default regexp for title keyword pattern
let record_re = ( /[^]\r\n\/]+/ - /#comment/ )
A relative decimal
let reldecimal = /[+-]?[0-9]+([.,][0-9]+)?/
let release_upgrades = "# Default behavior for the release upgrader. [DEFAULT] Prompt=lts "
A relative integer
let relinteger = /[-+]?[0-9]+/
A relative integer, without explicit plus sign
let relinteger_noplus = /[-]?[0-9]+/
non-local connection types
let remtypes = "host" | "hostssl" | "hostnossl"
resize tag
let resize = tag "resize"
Right glob separator
let rglob = "\">>"
A router
let router = Rx.ipv4