#+begin_src cfengine3
bundle agent __main__
{
  files:

      "/tmp/example-edit.empty_before_use.one" create => "true";
      "/tmp/example-edit.empty_before_use.two" create => "true";

      "/tmp/example-edit.empty_before_use.one"
        edit_line => show_edit_empty_before_use,
        edit_defaults => my_empty_file_before_editing;

      "/tmp/example-edit.empty_before_use.two"
        edit_line => show_edit_empty_before_use;

}

bundle edit_line show_edit_empty_before_use
{
  reports:
      "$(with)"
        with => concat( "The promise to edit '$(edit.filename)' was ",
                        "instructed to ignore any pre-existing content." ),
        if => strcmp( "true", "$(edit.empty_before_use)");

      "$(with)"
        with => concat( "The promise to edit '$(edit.filename)' was ",
                        "not instructed to ignore any pre-existing content."),
        if => strcmp( "false", "$(edit.empty_before_use)");

      "$(with)"
        with => concat ( "This version of CFEngine does not know if the",
                         "edit operation is expected to ignore pre-existing ",
                         "content the variable 'edit.empty_before_use' does ",
                         "not exist"),
        unless => isvariable ( "edit.empty_before_use" );

}

body edit_defaults my_empty_file_before_editing
{
        empty_file_before_editing => "true"; # The variable
                                             # edit.empty_before_use allows this
                                             # to be known from within an
                                             # edit_line bundle.
}
#+end_src
###############################################################################
#+begin_src example_output
#@ ```
#@ R: The promise to edit '/tmp/example-edit.empty_before_use.one' was instructed to ignore any pre-existing content.
#@ R: The promise to edit '/tmp/example-edit.empty_before_use.two' was not instructed to ignore any pre-existing content.
#@ ```
#+end_src
