diff options
author | Micah <micah@leap.se> | 2016-05-24 10:19:33 -0400 |
---|---|---|
committer | Micah <micah@leap.se> | 2016-05-24 10:19:33 -0400 |
commit | 1da5dc55ee48fcd437f5b5df00a5b2f3991ec9f1 (patch) | |
tree | 1794e812d83facd93b3007c42632c63ddf1eb2fc /lib/puppet/parser/functions/base64.rb |
Squashed 'puppet/modules/stdlib/' content from commit 7112363
git-subtree-dir: puppet/modules/stdlib
git-subtree-split: 71123634744b9fe2ec7d6a3e38e9789fd84801e3
Diffstat (limited to 'lib/puppet/parser/functions/base64.rb')
-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 00000000..617ba31b --- /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 |