add a new function called tfile
[puppet_common.git] / lib / puppet / parser / functions / tfile.rb
1 Puppet::Parser::Functions::newfunction(
2   :tfile,
3   :type => :rvalue,
4   :doc => "Returns the content of a file. If the file or the path does not
5     yet exist, it will create the path and touch the file."
6 ) do |args|
7   raise Puppet::ParseError, 'tfile() needs one argument' if args.length != 1
8   path = args.to_a.first
9   unless File.exists?(path)
10     dir = File.dirname(path)
11     unless File.directory?(dir)
12       Puppet::Util.recmkdir(dir,0700)
13     end
14     require 'fileutils'
15     FileUtils.touch(path)
16   end
17   function_file([path])
18 end