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