[augeas-devel] lense problem
Frederic Descamps
lefred at inuits.be
Wed Jun 23 09:45:16 UTC 2010
Hello,
I'm new in the use of augeas and I'm trying to create a lense (for
radius configuration files)
I'm not able to create the sections (that are identified by section_name
{ } )
This is what I've for the moment (see aattachment)
Can somebody help me to create that section entry ?
thank you
fred
-------------- next part --------------
module Test_radius =
let conf ="prefix = /usr
name = radiusd
# moron comment
confdir = ${raddbdir}
# another moron comment
listen {
type = auth
port = 0
}
$INCLUDE sites-enabled
"
test Radius.lns get conf =
{ "prefix" = "/usr" }
{ "name" = "radiusd" }
{ "#comment" = "moron comment" }
{}
{ "confdir" = "${raddbdir}" }
{ "#comment" = "another moron comment" }
{}
{ "listen"
{ "type" = "auth" }
{ "port" = "0" } }
{}
{ "$INCLUDE" = "sites-enabled" }
-------------- next part --------------
module Radius =
autoload xfm
let filter = (incl "/home/fred/sysctl.conf")
. (incl "/home/fred/radiusd.conf")
let key_re = /[A-Za-z0-9_.-]+/
let eq = del /[ \t]*=[ \t]*/ " = "
let value_re = /[^ \t\n](.*[^ \t\n])?/
let empty = Util.empty
let comment = Util.comment
let dels = Util.del_str
let eol = Util.eol
let indent = Util.indent
let kv = [ indent . key key_re . eq . store value_re . eol ]
let ws = del /[ \t]+/ " "
let wsc = del /:[ \t]+/ ": "
let obr = del /\{([ \t]*)\n/ "{\n"
let cbr = del /[ \t]*}[ \t]*\n/ "}\n"
let entry = [ indent . key key_re . eq . store value_re . eol ]
let ikey (k:regexp) = indent . key k
let section (n:regexp) (b:lens) = [ ikey n . ws .obr . (b|empty|comment)* . cbr ]
let kvsec (k:regexp) (v:regexp) = [ ikey k . wsc . store v .eol ]
let listen =
let setting = kvsec "type" /auth|proxy|acct|detail/
|kvsec "port" Rx.integer
in section "listen" setting
let include = [ key "$INCLUDE" . dels " " . store /[^\n]*/ . dels "\n"]
let lns = (empty | listen | comment | kv | include) *
let xfm = transform lns filter
More information about the augeas-devel
mailing list