[augeas-devel] shellvars - regex parsing help
Adam Stokes
ajs at redhat.com
Mon Jan 18 21:47:33 UTC 2010
----- "Adam Stokes" <ajs at redhat.com> wrote:
> ----- "David Lutterkort" <lutter at redhat.com> wrote:
>
> > On Thu, 2010-01-14 at 12:03 -0500, Adam Stokes wrote:
>
> >
> > The expression after the '-' is not right: you have
> > /([ \t]key_re . [ \t]*=[ \t]*.*[ \t\n])/
> >
> > That's one literal regexp; you're missing a bunch of '/' to
> end/start
> > regular expression literals.
> >
> > I think what you mean is
> > /[ \t]*/ . key_re . /[ \t]*=[ \t]*.*/
> >
> > David
>
> Once setting this as above augparse takes about 5 minutes longer to
> run through the test module:
>
> shellvars.aug :
>
> let key_re = /[A-Za-z0-9_]+(\[[0-9]+\])?/ - "unset" - "export"
> let eq = Util.del_str "="
> let empty = Util.empty
> (* let comment = Util.comment *)
> let comment =
> let line_re = /([^ \t\n].*[^ \t\n]|[^ \t\n])/ - /[ \t]*/ .
> key_re . /[ \t]*=[ \t]*.*/ in
> [ label "#comment" . del /#[ \t]*/ "# " . store line_re . del
> /\n/ "\n" ]
>
>
> /etc/sysconfig/nfs
>
> # THIS IS A COMMENT FOR MOUNTD
> # TESTINGVAR=VAL
> # MOUNTD_PORT=892
>
> t.aug:
>
> module T =
> let s = Sys.read_file "/etc/sysconfig/nfs"
> test Shellvars.lns get "# THIS IS A COMMENT FOR MOUNTD\n" =
> { "#comment" = "THIS IS A COMMENT FOR MOUNTD" }
> test Shellvars.lns get "# TESTINGVAR=VAL\n" =
> {"TESTINGVAR" = "VAL"}
> test Shellvars.lns get "# MOUNTD_PORT=892\n" =
> {"MOUNTD_PORT" = "892"}
>
> error reported by augparse:
>
> [root at jak dist]# augparse t.aug
> t.aug:5.4-6.28:exception thrown in test
> t.aug:5.9-.47:exception: Iterated lens matched less than it should
> Lens: /usr/share/augeas/lenses/dist/shellvars.aug:48.12-.53:
> Error encountered at 1:0 (0 characters into string)
> <|=|# TESTINGVAR=VAL\n>
>
> Tree generated so far:
>
>
> t.aug:7.4-8.29:exception thrown in test
> t.aug:7.9-.48:exception: Iterated lens matched less than it should
> Lens: /usr/share/augeas/lenses/dist/shellvars.aug:48.12-.53:
> Error encountered at 1:0 (0 characters into string)
> <|=|# MOUNTD_PORT=892\n>
>
> Tree generated so far:
>
>
> No error
>
just updated to augeas 0.7 and here is the return for t.aug:
Test failure:t.aug:5.4-6.28:
Expected:
{
{ "TESTINGVAR" = "VAL" }
}
Actual:
{
{ "#comment" = "TESTINGVAR=VAL" }
}
No error
So i guess the regex still needs work
--
__ __
.-----.| |_.-----.| |--.-----.-----.
|__ --|| _| _ || <| -__|__ --|
|_____||____|_____||__|__|_____|_____|
.----------------------------------.
( ajs at redhat.com || 919.754.4187 )
`----------------------------------'
More information about the augeas-devel
mailing list