diff options
author | Micah <micah@leap.se> | 2016-05-24 10:19:25 -0400 |
---|---|---|
committer | Micah <micah@leap.se> | 2016-05-24 10:19:25 -0400 |
commit | c54fc2c945c06511449b2daefee13cbd9b0232d8 (patch) | |
tree | a066c509e93ddd5b63ad3cc13dcec4bf32453df9 /lib/puppet/parser/functions/tfile.rb |
Squashed 'puppet/modules/common/' content from commit ae14962
git-subtree-dir: puppet/modules/common
git-subtree-split: ae149624f9bc551865b93b9b7155af2de8deeb71
Diffstat (limited to 'lib/puppet/parser/functions/tfile.rb')
-rw-r--r-- | lib/puppet/parser/functions/tfile.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/tfile.rb b/lib/puppet/parser/functions/tfile.rb new file mode 100644 index 00000000..acb6609b --- /dev/null +++ b/lib/puppet/parser/functions/tfile.rb @@ -0,0 +1,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 |