#+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
