summaryrefslogtreecommitdiff
path: root/puppet/modules/common/lib/puppet/parser/functions/tfile.rb
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2016-06-09 17:32:16 +0200
committervarac <varacanero@zeromail.org>2016-06-14 12:05:18 +0200
commitbee234db0f65c44840b5a46a2558fbd4b3b7b7dc (patch)
treec6d4b422fcf41b401c3300cd11863f61b9ee61fe /puppet/modules/common/lib/puppet/parser/functions/tfile.rb
parent5e44087aed707e882129c03f24fadf00abbf7e02 (diff)
git subrepo clone https://leap.se/git/puppet_common puppet/modules/common
subrepo: subdir: "puppet/modules/common" merged: "ae14962" upstream: origin: "https://leap.se/git/puppet_common" branch: "master" commit: "ae14962" git-subrepo: version: "0.3.0" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "cb2995b"
Diffstat (limited to 'puppet/modules/common/lib/puppet/parser/functions/tfile.rb')
-rw-r--r--puppet/modules/common/lib/puppet/parser/functions/tfile.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/puppet/modules/common/lib/puppet/parser/functions/tfile.rb b/puppet/modules/common/lib/puppet/parser/functions/tfile.rb
new file mode 100644
index 00000000..acb6609b
--- /dev/null
+++ b/puppet/modules/common/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