# Copyright 2021 Northern.tech AS # This file is part of Cfengine 3 - written and maintained by Northern.tech AS. # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; version 3. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # To the extent this program is licensed as part of the Enterprise # versions of Cfengine, the applicable Commercial Open Source License # (COSL) may apply to this file if you as a licensee so wish it. See # included file COSL.txt. ############################################################################### #+begin_src cfengine3 bundle agent example_using_template_method_inline_mustache { vars: # Here we construct a data container that will be passed to the mustache # templating engine "d" data => '{ "host": "docs.cfengine.com" }'; # Here we specify a string that will be used as an inline mustache template "mustache_template_string" string => "Welcome to host '{{{host}}}'"; files: # Here we render the file using the data container and inline template specification "/tmp/example.txt" create => "true", template_method => "inline_mustache", edit_template_string => "$(mustache_template_string)", template_data => @(d); reports: "/tmp/example.txt" printfile => cat( $(this.promiser) ); } # Copied from stdlib, lib/reports.cf body printfile cat(file) # @brief Report the contents of a file # @param file The full path of the file to report { file_to_print => "$(file)"; number_of_lines => "inf"; } bundle agent __main__ { methods: "example_using_template_method_inline_mustache"; } #+end_src ############################################################################### #+begin_src example_output #@ ``` #@ R: /tmp/example.txt #@ R: Welcome to host 'docs.cfengine.com' #@ ``` #+end_src