Sha256: f9a8db2afce28eaac723a482e06de89d5338729a631a0776b3a5484aa1bef57f

Contents?: true

Size: 1.17 KB

Versions: 14

Compression:

Stored size: 1.17 KB

Contents

require 'puppet/provider/parsedfile'

Puppet::Type.type(:postgresql_conf).provide(
  :parsed,
  :parent => Puppet::Provider::ParsedFile,
  :default_target => '/etc/postgresql.conf',
  :filetype => :flat
) do
  desc "Set key/values in postgresql.conf."

  text_line :comment, :match => /^\s*#/
  text_line :blank, :match => /^\s*$/

  record_line :parsed,
    :fields   => %w{name value comment},
    :optional => %w{comment},
    :match    => /^\s*([\w\.]+)\s*=?\s*(.*?)(?:\s*#\s*(.*))?\s*$/,
    :to_line  => proc { |h|

      # simple string and numeric values don't need to be enclosed in quotes
      dontneedquote = h[:value].match(/^(\w+|[0-9.-]+)$/)
      dontneedequal = h[:name].match(/^(include|include_if_exists)$/i)

      str =  h[:name].downcase # normalize case
      str += dontneedequal ? ' ' : ' = '
      str += "'" unless dontneedquote && !dontneedequal
      str += h[:value]
      str += "'" unless dontneedquote && !dontneedequal
      str += " # #{h[:comment]}" unless (h[:comment].nil? or h[:comment] == :absent)
      str
    },
    :post_parse => proc { |h|
      h[:name].downcase! # normalize case
      h[:value].gsub!(/(^'|'$)/, '') # strip out quotes
    }

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
freighthop-0.6.1 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.6.0 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.5.2 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.5.1 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.5.0 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.4.1 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.4.0 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.3.3 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.3.2 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.3.1 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.3.0 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.2.1 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.2.0 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb
freighthop-0.1.0 modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb