It should work, it is just inefficient :-)

Nakarin Phooripoom wrote:
> Why does it work fine for me? ^^"
> 
> macbook:bin $ sudo cat /tmp/foo
> Hello world!!!
> macbook:bin $ sudo ./cf-agent -f /tmp/bar.cf -K
> macbook:bin $ sudo cat /tmp/foo
> Hello world!!!
> one
> two
> three
> 
> Cheers,
> --Nakarin
> 
> On Dec 2, 2009, at 5:15 PM, Mark Burgess wrote:
> 
>> First you need to pass the list to the edit bundle with @(list)
>> rather than iterating too high up -- otherwise you will edit the file once 
>> for each line,
>> instead of editing the file once with all lines.
>>
>>
>> see tests/units/unit_edit_insert_lines_silly.cf
>>
>> (attached)
>>
>>
>>
>> nwat...@symcor.com wrote:
>>> Greetings,
>>>
>>> I need some help with a editing promise that uses list iteration.
>>>
>>> body common control {
>>>    bundlesequence => { "test" };
>>> }
>>>
>>> bundle common g {
>>>    classes:
>>>
>>>        "all" expression => "any";
>>> }
>>>
>>> bundle agent test {
>>>
>>>    vars:
>>>
>>>        any::
>>>            "x" slist => { "one", "two", "three" };
>>>
>>>    files:
>>>
>>>        any::
>>>            "/tmp/foo"
>>>                edit_line => AppendIfNoLine("${x}");
>>> }
>>>
>>> bundle edit_line AppendIfNoLine(line) {
>>>    insert_lines:
>>>        "${line}" location => "append";
>>> }
>>>
>>> body location append {
>>>    before_after => "after";
>>> }
>>>
>>> Expected results
>>> [r...@unxxhd01 inputs]# cat /tmp/foo
>>> one
>>> two
>>> three
>>>
>>> Actual results
>>> [r...@unxxhd01 inputs]# cf-agent -f ./bar.cf
>>> [r...@unxxhd01 inputs]# !cat
>>> cat /tmp/foo
>>> one
>>>
>>> What have I missed?
>>>
>>>
>>> Sincerely,
>>> --
>>> Neil Watson
>>> 416-673-3465
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>>
>>> CONFIDENTIALITY WARNING 
>>> This communication, including any attachments, is for the exclusive use of 
>>> addressee and may contain proprietary and/or confidential information. If 
>>> you are not the intended recipient, any use, copying, disclosure, 
>>> dissemination or distribution is strictly prohibited. If you are not the 
>>> intended recipient, please notify the sender immediately by return e-mail, 
>>> delete this communication and destroy all copies.
>>>
>>> AVERTISSEMENT RELATIF À LA CONFIDENTIALITÉ 
>>> Ce message, ainsi que les pièces qui y sont jointes, est destiné à l’usage 
>>> exclusif de la personne à laquelle il s’adresse et peut contenir de 
>>> l’information personnelle ou confidentielle. Si le lecteur de ce message 
>>> n’en est pas le destinataire, nous l’avisons par la présente que toute 
>>> diffusion, distribution, reproduction ou utilisation de son contenu est 
>>> strictement interdite. Veuillez avertir sur-le-champ l’expéditeur par 
>>> retour de courrier électronique et supprimez ce message ainsi que toutes 
>>> les pièces jointes.
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Help-cfengine mailing list
>>> Help-cfengine@cfengine.org
>>> https://cfengine.org/mailman/listinfo/help-cfengine
>> -- 
>> Mark Burgess
>>
>> -------------------------------------------------
>> Professor of Network and System Administration
>> Oslo University College, Norway
>>
>> Personal Web: http://www.iu.hio.no/~mark
>> Office Telf : +47 22453272
>> -------------------------------------------------
>>
>> #######################################################
>> #
>> # Insert a number of lines
>> #
>> #######################################################
>>
>> body common control
>>
>> {
>> any::
>>
>>  bundlesequence  => { "insert" };   
>> }
>>
>>
>> #######################################################
>>
>> bundle agent insert
>>
>> {
>> vars:
>>
>>  "v" slist => {
>>                "One potato",
>>                "Two potato",
>>                "Three potatoe",
>>                "Four"    
>>               };
>>
>> files:
>>
>>  "/tmp/test_insert"
>>
>>            create => "true",
>>         edit_line => Insert("@(insert.v)");
>>   #  edit_defaults => empty;
>>
>> }
>>
>> #######################################################
>> # For the library
>> #######################################################
>>
>> bundle edit_line Insert(name)
>>
>> {
>> insert_lines:
>>
>>  "$(name)";
>>
>> }
>>
>> #######################################################
>>
>> body edit_defaults empty
>>
>> {
>> empty_file_before_editing => "true";
>> }_______________________________________________
>> Help-cfengine mailing list
>> Help-cfengine@cfengine.org
>> https://cfengine.org/mailman/listinfo/help-cfengine
> 
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine

-- 
Mark Burgess

-------------------------------------------------
Professor of Network and System Administration
Oslo University College, Norway

Personal Web: http://www.iu.hio.no/~mark
Office Telf : +47 22453272
-------------------------------------------------
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to