diff options
-rw-r--r-- | files/php.aug | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/files/php.aug b/files/php.aug new file mode 100644 index 0000000..5d44363 --- /dev/null +++ b/files/php.aug @@ -0,0 +1,52 @@ +(* PHP module for Augeas *) +(* Author: Raphael Pinson <raphink@gmail.com> *) +(* *) + +module PHP = + autoload xfm + +(************************************************************************ + * INI File settings + *************************************************************************) + +let comment = IniFile.comment IniFile.comment_re IniFile.comment_default +let sep = IniFile.sep IniFile.sep_re IniFile.sep_default +let empty = IniFile.empty + + +(************************************************************************ + * ENTRY + * + * We have to remove the keyword "section" from possible entry keywords + * otherwise it would lead to an ambiguity with the "section" label + * since PHP allows entries outside of sections. + *************************************************************************) +let entry = IniFile.entry IniFile.entry_re sep comment + + +(************************************************************************ + * TITLE + * + * We use IniFile.title_label because there can be entries + * outside of sections whose labels would conflict with section names + *************************************************************************) +let title = IniFile.title ( IniFile.record_re - ".anon" ) +let record = IniFile.record title entry + +let record_anon = [ label ".anon" . ( entry | empty )+ ] + + +(************************************************************************ + * LENS & FILTER + * There can be entries before any section + * IniFile.entry includes comment management, so we just pass entry to lns + *************************************************************************) +let lns = record_anon? . record* + +let filter = (incl "/etc/php*/*/*.ini") + . (incl "/etc/php.ini") + . (incl "/etc/php.d/*.ini") + . Util.stdexcl + +let xfm = transform lns filter + |