help-cfengine
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Stumped on editfiles problem


From: Ferguson, Steve
Subject: RE: Stumped on editfiles problem
Date: Mon, 25 Aug 2003 11:37:53 -0400

I understand this.  My comparison to Perl was a logical one.  The constructs
I used in my perl regexes all map to the same constructs I'm trying to use
in the cfengine config file, but cfengine isn't matching them.

Can you explain why I'm not getting matches on what the documentation
explains to be valid regexes?  Perhaps I'm missing something, but I believe
any of the patterns I used should result in a match.  None of the things I
attempted--all of which are listed as valid in the cfengine docs--to match a
rightmost word boundary seem to work.

Steve

> -----Original Message-----
> From: Mark.Burgess@iu.hio.no [mailto:Mark.Burgess@iu.hio.no]
> Sent: Saturday, August 23, 2003 4:41 AM
> To: Steve.Ferguson@gedas.com
> Cc: help-cfengine@gnu.org
> Subject: Re: Stumped on editfiles problem
> 
> 
> 
> You cannot compare cfengine's posix regexs to perl. Perl has its own
> library. The posix regexs are not always compatible between OS's.
> 
> There has been some discussion about whether we should switch to
> perl regexs in cfengine. The main reason for not doing this is that
> it introduces dependencies on perl that are undesirable. If some
> alternative syntax could distinguish the two it would be 
> useful to have both.
> 
> M
> 
> On 19 Aug, Ferguson, Steve wrote:
> > It seems that this is boiling down to more of my ignorance 
> of the nuances of
> > cfengine's regex parser.  I still don't understand why one 
> expression will
> > work on a Solaris 8 box, and not on a 2.6 box, but let's 
> ignore that for the
> > moment.  Here is one regex that works on the 2.6 box:
> > 
> > CommentLinesMatching "^daytime.*"
> > 
> > I don't like this one because it doesn't extend to the 
> general case.  I at
> > least want to match a right-most word boundary, because a 
> string like "time"
> > might match something like "timer" or another longer string 
> I may want to
> > keep enabled.  I can't figure out how to get a rightmost 
> word boundary
> > match.  Here's stuff that doesn't result in a match, and I 
> don't understand
> > why:
> > 
> > CommentLinesMatching "^\<daytime\>.*"
> > CommentLinesMatching "^daytime\>.*"
> > CommentLinesMatching "^daytime\W+.*"
> > CommentLinesMatching "^daytime[:space:].*"
> > CommentLinesMatching "^daytime\b.*"
> > 
> > Plugging similar expressions into Perl results in a match.
> > 
> > root:cfengine# perl -ne 'print if /^daytime\b.*/;' /etc/inetd.conf
> > daytime stream  tcp     nowait  root    internal
> > daytime dgram   udp     wait    root    internal
> > root:cfengine# perl -ne 'print if /^daytime\W+.*/;' /etc/inetd.conf
> > daytime stream  tcp     nowait  root    internal
> > daytime dgram   udp     wait    root    internal
> > 
> > So I'm missing some key piece about the regexes in cfengine.
> > 
> > I don't want to use my first solution, because as I 
> mentioned that doesn't
> > limit my match to the entire first field.
> > 
> > Help?
> > 
> > Thanks,
> > Steve
> > 
> > 
> >> -----Original Message-----
> >> From: Ferguson, Steve 
> >> Sent: Tuesday, August 19, 2003 1:50 PM
> >> To: 'help-cfengine@gnu.org'
> >> Subject: Stumped on editfiles problem
> >> 
> >> 
> >> I'm running the same configuration on a Solaris 8 and a 2.6 
> >> system.  This works as expected on the 8 system, but does 
> >> nothing on the 2.6 box.
> >> 
> >> editfiles:
> >>   { /etc/inetd.conf
> >>     SetCommentStart "#"
> >>     CommentLinesMatching "^\<daytime\>.*"
> >>     DefineClasses "HupInetd"
> >>   }
> >> 
> >> The relevant lines from inetd.conf look like this on the 2.6 
> >> box (default shipped with 2.6):
> >> 
> >> daytime stream  tcp     nowait  root    internal
> >> daytime dgram   udp     wait    root    internal
> >> 
> >> They looks like this on the 8 system:
> >> 
> >> daytime stream  tcp6    nowait  root    internal
> >> daytime dgram   udp6    wait    root    internal
> >> 
> >> Running on the 8 box in debug mode, I see this:
> >> 
> >> Edit action: CommentLinesMatching
> >> Commenting #daytime     stream  tcp6    nowait  root    internal
> >> Commenting #daytime     dgram   udp6    wait    root    internal
> >> 
> >> On the 2.6 box I don't see any "Commenting" actions in the 
> >> debug output.
> >> 
> >> Begin editing /etc/./inet/inetd.conf
> >> Edit action: SetCommentStart
> >> Edit action: CommentLinesMatching
> >> Edit action: DefineClasses
> >> 
> >> I've even tried copying inetd.conf from the 8 box to the 2.6 
> >> box, just to be certain I didn't have any sort of bizarre 
> >> embedded unprintable characters in the file (od didn't show 
> >> any).  So I have the same config section and the same target 
> >> file, but on one system cfengine will make the change and on 
> >> the other it won't.
> >> 
> >> I'm stumped.  Any suggestions on what I'm missing?
> >> 
> >> Thanks,
> >> Steve
> >> 
> >> PS. I'm having the same "no op" issue on ALL of my DEC boxes 
> >> too.  I don't care about them yet, because I haven't been 
> >> able to get cfservd to run successfully there yet.  It's just 
> >> an additional data point.
> >> 
> >> --
> >> Steve Ferguson
> >> gedas USA, Inc.
> >> Steve.Ferguson@gedas.com
> >> http://www.gedasusa.com
> >> 
> > 
> > 
> > _______________________________________________
> > Help-cfengine mailing list
> > Help-cfengine@gnu.org
> > http://mail.gnu.org/mailman/listinfo/help-cfengine
> 
> 
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Work: +47 22453272            Email:  Mark.Burgess@iu.hio.no
> Fax : +47 22453205            WWW  :  http://www.iu.hio.no/~mark
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 
> 
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@gnu.org
> http://mail.gnu.org/mailman/listinfo/help-cfengine
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]