summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/php.aug52
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
+