diff options
author | Adrien Thebo <git@somethingsinistral.net> | 2013-05-24 09:40:50 -0700 |
---|---|---|
committer | Adrien Thebo <git@somethingsinistral.net> | 2013-05-24 09:40:50 -0700 |
commit | 9c8c8275abd76878d38a0f6f3af52dc468656283 (patch) | |
tree | 3ac3565f2bf7a0043f1a09584ce93a8dc24ed5a0 /lib/puppet | |
parent | 2cdbbafc06844afe7337717d9e29c720819d528c (diff) | |
parent | 3707c47dcdf154b2396d9240fc90f76450890b71 (diff) |
Merge pull request #159 from fiddyspence/feature/base64
Adding base64 function
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/parser/functions/base64.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/base64.rb b/lib/puppet/parser/functions/base64.rb new file mode 100644 index 0000000..d9a590a --- /dev/null +++ b/lib/puppet/parser/functions/base64.rb @@ -0,0 +1,37 @@ +module Puppet::Parser::Functions + + newfunction(:base64, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| + + Base64 encode or decode a string based on the command and the string submitted + + Usage: + + $encodestring = base64('encode','thestring') + $decodestring = base64('decode','dGhlc3RyaW5n') + + ENDHEREDOC + + require 'base64' + + raise Puppet::ParseError, ("base64(): Wrong number of arguments (#{args.length}; must be = 2)") unless args.length == 2 + + actions = ['encode','decode'] + + unless actions.include?(args[0]) + raise Puppet::ParseError, ("base64(): the first argument must be one of 'encode' or 'decode'") + end + + unless args[1].is_a?(String) + raise Puppet::ParseError, ("base64(): the second argument must be a string to base64") + end + + case args[0] + when 'encode' + result = Base64.encode64(args[1]) + when 'decode' + result = Base64.decode64(args[1]) + end + + return result + end +end |