1# Copyright 2020 Northern.tech AS 2 3# This file is part of Cfengine 3 - written and maintained by Northern.tech AS. 4 5# This program is free software; you can redistribute it and/or modify it 6# under the terms of the GNU General Public License as published by the 7# Free Software Foundation; version 3. 8 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13 14# You should have received a copy of the GNU General Public License 15# along with this program; if not, write to the Free Software 16# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 17 18# To the extent this program is licensed as part of the Enterprise 19# versions of Cfengine, the applicable Commercial Open Source License 20# (COSL) may apply to this file if you as a licensee so wish it. See 21# included file COSL.txt. 22 23############################################################################### 24#+begin_src cfengine3 25bundle agent example_using_template_method_inline_mustache 26{ 27 vars: 28 29 # Here we construct a data container that will be passed to the mustache 30 # templating engine 31 32 "d" 33 data => '{ "host": "docs.cfengine.com" }'; 34 35 # Here we specify a string that will be used as an inline mustache template 36 "mustache_template_string" 37 string => "Welcome to host '{{{host}}}'"; 38 39 files: 40 # Here we render the file using the data container and inline template specification 41 42 "/tmp/example.txt" 43 create => "true", 44 template_method => "inline_mustache", 45 edit_template_string => "$(mustache_template_string)", 46 template_data => @(d); 47 48 reports: 49 "/tmp/example.txt" 50 printfile => cat( $(this.promiser) ); 51} 52 53# Copied from stdlib, lib/reports.cf 54body printfile cat(file) 55# @brief Report the contents of a file 56# @param file The full path of the file to report 57{ 58 file_to_print => "$(file)"; 59 number_of_lines => "inf"; 60} 61bundle agent __main__ 62{ 63 methods: "example_using_template_method_inline_mustache"; 64} 65#+end_src 66############################################################################### 67#+begin_src example_output 68#@ ``` 69#@ R: /tmp/example.txt 70#@ R: Welcome to host 'docs.cfengine.com' 71#@ ``` 72#+end_src 73