2 Cyrus_Imapd module for Augeas
4 Author: Free Ekanayaka <free@64studio.com>
11 (************************************************************************
13 *************************************************************************)
16 let indent = del /[ \t]*(\n[ \t]+)?/ " "
17 let comment = Util.comment
18 let empty = Util.empty
19 let eq = del /[ \t]*:/ ":"
20 let word = /[A-Za-z0-9_.-]+/
22 (* The value of a parameter, after the '=' sign. Postfix allows that
23 * lines are continued by starting continuation lines with spaces.
24 * The definition needs to make sure we don't add indented comment lines
27 let chr = /[^# \t\n]/ in
29 let line = (chr . any* . chr | chr) in
30 let lines = line . (/\n[ \t]+/ . line)* in
33 (************************************************************************
35 *************************************************************************)
37 let entry = [ key word . eq . (indent . value)? . eol ]
39 (************************************************************************
41 *************************************************************************)
43 let lns = (comment|empty|entry) *
45 let filter = (incl "/etc/imapd.conf")
46 . (incl "/etc/imap/*.conf")
49 let xfm = transform lns filter