[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Stumped on editfiles problem
From: |
Mark . Burgess |
Subject: |
Re: Stumped on editfiles problem |
Date: |
Sat, 23 Aug 2003 10:41:11 +0200 (MEST) |
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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~