57 lines
2.0 KiB
Plaintext
57 lines
2.0 KiB
Plaintext
|
(* Python paste config file lens for Augeas
|
||
|
Author: Dan Prince <dprince@redhat.com>
|
||
|
*)
|
||
|
module PythonPaste =
|
||
|
autoload xfm
|
||
|
|
||
|
(************************************************************************
|
||
|
* INI File settings
|
||
|
*************************************************************************)
|
||
|
|
||
|
let comment = IniFile.comment "#" "#"
|
||
|
|
||
|
let sep = IniFile.sep "=" "="
|
||
|
|
||
|
let eol = Util.eol
|
||
|
|
||
|
(************************************************************************
|
||
|
* ENTRY
|
||
|
*************************************************************************)
|
||
|
|
||
|
let url_entry = /\/[\/A-Za-z0-9.-_]* ?[:|=] [A-Za-z0-9.-_]+/
|
||
|
|
||
|
let set_kw = [ Util.del_str "set" . Util.del_ws_spc . label "@set" ]
|
||
|
|
||
|
let no_inline_comment_entry (kw:regexp) (sep:lens) (comment:lens)
|
||
|
= [ set_kw? . key kw . sep . IniFile.sto_to_eol? . eol ]
|
||
|
| comment
|
||
|
| [ seq "urls" . store url_entry . eol ]
|
||
|
|
||
|
let entry_re = ( /[A-Za-z][:#A-Za-z0-9._-]+/ )
|
||
|
|
||
|
let entry = no_inline_comment_entry entry_re sep comment
|
||
|
|
||
|
(************************************************************************
|
||
|
* RECORD
|
||
|
*************************************************************************)
|
||
|
|
||
|
let title = IniFile.title IniFile.record_re
|
||
|
|
||
|
let record = IniFile.record title entry
|
||
|
|
||
|
(************************************************************************
|
||
|
* LENS & FILTER
|
||
|
*************************************************************************)
|
||
|
let lns = IniFile.lns record comment
|
||
|
|
||
|
let filter = ((incl "/etc/glance/*.ini")
|
||
|
. (incl "/etc/keystone/keystone.conf")
|
||
|
. (incl "/etc/nova/api-paste.ini")
|
||
|
. (incl "/etc/swift/swift.conf")
|
||
|
. (incl "/etc/swift/proxy-server.conf")
|
||
|
. (incl "/etc/swift/account-server/*.conf")
|
||
|
. (incl "/etc/swift/container-server/*.conf")
|
||
|
. (incl "/etc/swift/object-server/*.conf"))
|
||
|
|
||
|
let xfm = transform lns filter
|