|
Packit Service |
a2ae7a |
(*
|
|
Packit Service |
a2ae7a |
Module: PylonsPaste
|
|
Packit Service |
a2ae7a |
Parses Pylons Paste ini configuration files.
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
Author: Andrew Colin Kissa <andrew@topdog.za.net>
|
|
Packit Service |
a2ae7a |
Baruwa Enterprise Edition http://www.baruwa.com
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
About: License
|
|
Packit Service |
a2ae7a |
This file is licensed under the LGPL v2+.
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
About: Configuration files
|
|
Packit Service |
a2ae7a |
This lens applies to /etc/baruwa See <filter>.
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
module Pylonspaste =
|
|
Packit Service |
a2ae7a |
autoload xfm
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* Group: USEFUL PRIMITIVES
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let comment = IniFile.comment IniFile.comment_re IniFile.comment_default
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let sep = IniFile.sep "=" "="
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let eol = Util.eol
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let optspace = del /\n/ "\n"
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let entry_re = ( /[A-Za-z][:#A-Za-z0-9._-]+/)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let plugin_re = /[A-Za-z][;:#A-Za-z0-9._-]+/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let plugins_kw = /plugins/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let debug_kw = /debug/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let normal_opts = entry_re - (debug_kw|plugins_kw)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let del_opt_ws = del /[\t ]*/ ""
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let new_ln_sep = optspace . del_opt_ws . store plugin_re
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let plugins_multiline = sep . counter "items" . [ seq "items" . new_ln_sep]*
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let sto_multiline = optspace . Sep.opt_space . store (Rx.space_in . (/[ \t]*\n/ . Rx.space . Rx.space_in)*)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* Group: ENTRY
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let set_option = Util.del_str "set "
|
|
Packit Service |
a2ae7a |
let no_inline_comment_entry (kw:regexp) (sep:lens) (comment:lens) =
|
|
Packit Service |
a2ae7a |
[ set_option . key debug_kw . sep . IniFile.sto_to_eol . eol ]
|
|
Packit Service |
a2ae7a |
| [ key plugins_kw . plugins_multiline . eol]
|
|
Packit Service |
a2ae7a |
| [ key kw . sep . IniFile.sto_to_eol? . eol ]
|
|
Packit Service |
a2ae7a |
| comment
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let entry = no_inline_comment_entry normal_opts sep comment
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* RECORD
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let title = IniFile.title IniFile.record_re
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let record = IniFile.record title entry
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* Group: LENS & FILTER
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let lns = IniFile.lns record comment
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let filter = incl "/etc/baruwa/*.ini"
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let xfm = transform lns filter
|
|
Packit Service |
a2ae7a |
|