[augeas-devel] Wildcarded key/value pairs and nested blocks (dovecot lens development)

Serge Smetana serge.smetana at gmail.com
Wed Mar 6 15:54:24 UTC 2013


Hi Raphaël,

Thank you very much for the comments.
I cannot apply all of them because currently we use Augeas 0.10 but
will make changes for the rest.

My main question was is there any way to describe keys as regexp
instead of having fixed list and to have lens for the blocks without
"overlapping lenses" exception?

Thank you.

Serge

On Wed, Mar 6, 2013 at 9:35 AM, Raphaël Pinson
<raphael.pinson at camptocamp.com> wrote:
> Hi Serge,
>
>
> Great job! I've left some comments on github directly.
>
>
> Regards,
>
> Raphaël
>
>
> On Tue, Mar 5, 2013 at 7:28 PM, Serge Smetana <serge.smetana at gmail.com>
> wrote:
>>
>> Hello,
>>
>> I'm trying to create lens for Dovecot config.
>> I'm already have working lens here:
>>
>> https://github.com/smetana/augeas/commit/0cbd6b88e0f1bf2e281fa3ea16803abbf8b3d770
>>
>> But it is too "tight" because of the fixed list of keywords for the
>> entries.
>> Dovecot supports blocks and nested blocks like
>>
>> service auth {
>>   unix_listener auth-userdb {
>>      ...
>>   }
>> }
>>
>> and if I create wildcarded lens for simple entry
>>
>>    let entry = [ indent . key Rx.word. eq . (store value)? . eol ]
>>
>> I am unable to create lens for the block
>>
>>    let block_names = ("protocol" | "service" | "plugin" | "namespace" |
>> "map" )
>>    let block =
>>        [ indent . key block_names . block_args? . block_open . eol
>>        . (entry | empty | comment)*
>>        . indent . block_close . eol ]
>>
>> I end up with exception: overlapping lenses in tree union.put
>>     Example matched by both:  { "protocol" }
>>
>> Is there any way to define possible keys as something like a
>> subsctraction (Rx.word - block_names)
>> meaning "match anything but not /protocol|service|map/"?
>>
>> Thank you!
>> Great job!
>>
>> Serge
>>
>> _______________________________________________
>> augeas-devel mailing list
>> augeas-devel at redhat.com
>> https://www.redhat.com/mailman/listinfo/augeas-devel
>
>
>
>
> --
> Raphaël Pinson
> Administrateur Systèmes & Réseaux
> Camptocamp France
> Savoie Technolac
> BP 352
> 48, avenue du Lac du Bourget
> 73372 Le Bourget du Lac, Cedex
> www.camptocamp.com




More information about the augeas-devel mailing list