From 8a46e201fe476825f7fec5d67d2ff14ba48008a1 Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Mon, 25 Jul 2011 10:42:27 -0700 Subject: (#8575) Add loadyaml() function This change adds a loadyaml() puppet function that takes a path to a YAML data file and returns the contents as a Puppet variable. There is currently no validation of the contents of the file. This commit is intentionally lacking unit tests because of time constraints. Reviewed-by: Dan Bode --- lib/puppet/parser/functions/loadyaml.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lib/puppet/parser/functions/loadyaml.rb (limited to 'lib/puppet') diff --git a/lib/puppet/parser/functions/loadyaml.rb b/lib/puppet/parser/functions/loadyaml.rb new file mode 100644 index 0000000..0f16f69 --- /dev/null +++ b/lib/puppet/parser/functions/loadyaml.rb @@ -0,0 +1,20 @@ +module Puppet::Parser::Functions + + newfunction(:loadyaml, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| + Load a YAML file and return the data if it contains an Array, String, or Hash + as a Puppet variable. + + For example: + + $myhash = loadyaml('/etc/puppet/data/myhash.yaml') + ENDHEREDOC + + unless args.length == 1 + raise Puppet::ParseError, ("loadyaml(): wrong number of arguments (#{args.length}; must be 1)") + end + + YAML.load_file(args[0]) + + end + +end -- cgit v1.2.3