#+begin_src prep
#@ ```
#@ # Make sure that none of the example files exist to begin with
#@ rm -f /tmp/example-files-transformer.txt
#@ rm -f /tmp/example-files-transformer.txt.gz
#@ rm -f /tmp/this-file-does-not-exist-to-be-transformed.txt
#@ rm -f /tmp/this-file-does-not-exist-to-be-transformed.txt.gz
#@ ```
#+end_src
###############################################################################
#+begin_src cfengine3
bundle agent main
{
  vars:
      "gzip_path" string => ifelse( isexecutable("/bin/gzip"), "/bin/gzip",
                                    "/usr/bin/gzip" );
  files:
    linux::
      "/tmp/example-files-transformer.txt"
        content => "Hello World";

      "/tmp/example-files-transformer.txt"
        transformer => "$(gzip_path) $(this.promiser)";

      # The transformer in the following promise results in the promised file
      # being absent on completion. Note: It is the expectation and
      # responsibility of the transformer itself that the transformation results
      # in the promised file no longer existing.

      "/tmp/example-files-transformer.txt"
        transformer => "$(gzip_path) $(this.promiser)";

      # Since this file does not exist, the transformer will not be triggered
      # and neither the text file nor a gzip file will exist
      "/tmp/this-file-does-not-exist-to-be-transformed.txt"
        transformer => "$(gzip_path) $(this.promiser)";

  reports:
      "/tmp/example-files-transformer.txt $(with)"
        with => ifelse( fileexists( "/tmp/example-files-transformer.txt"), "exists",
                        "does not exist");

      "/tmp/example-files-transformer.txt.gz $(with)"
        with => ifelse( fileexists( "/tmp/example-files-transformer.txt.gz"), "exists",
                        "does not exist");

      "/tmp/this-file-does-not-exist-to-be-transformed.txt $(with)"
        with => ifelse( fileexists( "/tmp/this-file-does-not-exist-to-be-transformed.txt"), "exists",
                        "does not exist");

      "/tmp/this-file-does-not-exist-to-be-transformed.txt.gz $(with)"
        with => ifelse( fileexists( "/tmp/this-file-does-not-exist-to-be-transformed.txt.gz"), "exists",
                        "does not exist");
}
#+end_src
###############################################################################
#+begin_src example_output
#@ ```
#@ R: /tmp/example-files-transformer.txt does not exist
#@ R: /tmp/example-files-transformer.txt.gz exists
#@ R: /tmp/this-file-does-not-exist-to-be-transformed.txt does not exist
#@ R: /tmp/this-file-does-not-exist-to-be-transformed.txt.gz does not exist
#@ ```
#+end_src
