Puppet Function: postgresql_escape
- Defined in:
- lib/puppet/parser/functions/postgresql_escape.rb
- Function type:
- Ruby 3.x API
Overview
Safely escapes a string using $$ using a random tag which should be consistent
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/puppet/parser/functions/postgresql_escape.rb', line 4 newfunction(:postgresql_escape, :type => :rvalue, :doc => <<-EOS Safely escapes a string using $$ using a random tag which should be consistent EOS ) do |args| raise(Puppet::ParseError, "postgresql_escape(): Wrong number of arguments " + "given (#{args.size} for 1)") if args.size != 1 password = args[0] if password !~ /\$\$/ and password[-1] != '$' retval = "$$#{password}$$" else escape = Digest::MD5.hexdigest(password)[0..5].gsub(/\d/,'') until password !~ /#{escape}/ escape = Digest::MD5.hexdigest(escape)[0..5].gsub(/\d/,'') end retval = "$#{escape}$#{password}$#{escape}$" end retval end |