Sha256: 5b201f3dc8742c762349cb26d624ea280f3ce1bcdb505dea193420daaf986f5c

Contents?: true

Size: 719 Bytes

Versions: 20

Compression:

Stored size: 719 Bytes

Contents

require 'digest/md5'

module Puppet::Parser::Functions
  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 !~ /\$\$/ 
      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
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
freighthop-0.6.1 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.6.0 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.5.2 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.5.1 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.5.0 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.4.1 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.4.0 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.3.3 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.3.2 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.3.1 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.3.0 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.2.1 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.2.0 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.1.0 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.0.6 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.0.5 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.0.4 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.0.3 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.0.2 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb
freighthop-0.0.1 modules/postgresql/lib/puppet/parser/functions/postgresql_escape.rb