Server IP : 127.0.0.2 / Your IP : 18.189.11.177 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/augeas/lenses/dist/ |
Upload File : |
(* Augeas module for editing Java properties files Author: Craig Dunn <craig@craigdunn.org> Limitations: - doesn't support \ alone on a line - values are not unescaped - multi-line properties are broken down by line, and can't be replaced with a single line See format info: http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html#load(java.io.Reader) *) module Properties = (* Define some basic primitives *) let empty = Util.empty let eol = Util.eol let hard_eol = del "\n" "\n" let sepch = del /([ \t]*(=|:)|[ \t])/ "=" let sepspc = del /[ \t]/ " " let sepch_ns = del /[ \t]*(=|:)/ "=" let sepch_opt = del /[ \t]*(=|:)?[ \t]*/ "=" let value_to_eol_ws = store /(:|=)[^\n]*[^ \t\n\\]/ let value_to_bs_ws = store /(:|=)[^\n]*[^\\\n]/ let value_to_eol = store /([^ \t\n:=][^\n]*[^ \t\n\\]|[^ \t\n\\:=])/ let value_to_bs = store /([^ \t\n:=][^\n]*[^\\\n]|[^ \t\n\\:=])/ let indent = Util.indent let backslash = del /[\\][ \t]*\n/ "\\\n" let opt_backslash = del /([\\][ \t]*\n)?/ "" let entry = /([^ \t\n:=\/!#\\]|[\\]:|[\\]=|[\\][\t ]|[\\][^\/\n])+/ let multi_line_entry = [ indent . value_to_bs? . backslash ] . [ indent . value_to_bs . backslash ] * . [ indent . value_to_eol . eol ] . value " < multi > " let multi_line_entry_ws = opt_backslash . [ indent . value_to_bs_ws . backslash ] + . [ indent . value_to_eol . eol ] . value " < multi_ws > " (* define comments and properties*) let bang_comment = [ label "!comment" . del /[ \t]*![ \t]*/ "! " . store /([^ \t\n].*[^ \t\n]|[^ \t\n])/ . eol ] let comment = ( Util.comment | bang_comment ) let property = [ indent . key entry . sepch . ( multi_line_entry | indent . value_to_eol . eol ) ] let property_ws = [ indent . key entry . sepch_ns . ( multi_line_entry_ws | indent . value_to_eol_ws . eol ) ] let empty_property = [ indent . key entry . sepch_opt . hard_eol ] let empty_key = [ sepch_ns . ( multi_line_entry | indent . value_to_eol . eol ) ] (* setup our lens and filter*) let lns = ( empty | comment | property_ws | property | empty_property | empty_key ) *