From 4351d8b9c8dac40f0f733fd7622d655241f113ba Mon Sep 17 00:00:00 2001 From: Karel Brezina Date: Fri, 15 Feb 2013 10:56:44 +0100 Subject: Added 'ini_subsetting' custom resource type --- lib/puppet/type/ini_subsetting.rb | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 lib/puppet/type/ini_subsetting.rb (limited to 'lib/puppet/type/ini_subsetting.rb') diff --git a/lib/puppet/type/ini_subsetting.rb b/lib/puppet/type/ini_subsetting.rb new file mode 100644 index 0000000..dd146c2 --- /dev/null +++ b/lib/puppet/type/ini_subsetting.rb @@ -0,0 +1,55 @@ +Puppet::Type.newtype(:ini_subsetting) do + + ensurable do + defaultvalues + defaultto :present + end + + newparam(:name, :namevar => true) do + desc 'An arbitrary name used as the identity of the resource.' + end + + newparam(:section) do + desc 'The name of the section in the ini file in which the setting should be defined.' + end + + newparam(:setting) do + desc 'The name of the setting to be defined.' + end + + newparam(:subsetting) do + desc 'The name of the subsetting to be defined.' + end + + newparam(:subsetting_separator) do + desc 'The separator string between subsettings. Defaults to " "' + defaultto(" ") + end + + newparam(:path) do + desc 'The ini file Puppet will ensure contains the specified setting.' + validate do |value| + unless (Puppet.features.posix? and value =~ /^\//) or (Puppet.features.microsoft_windows? and (value =~ /^.:\// or value =~ /^\/\/[^\/]+\/[^\/]+/)) + raise(Puppet::Error, "File paths must be fully qualified, not '#{value}'") + end + end + end + + newparam(:key_val_separator) do + desc 'The separator string to use between each setting name and value. ' + + 'Defaults to " = ", but you could use this to override e.g. whether ' + + 'or not the separator should include whitespace.' + defaultto(" = ") + + validate do |value| + unless value.scan('=').size == 1 + raise Puppet::Error, ":key_val_separator must contain exactly one = character." + end + end + end + + newproperty(:value) do + desc 'The value of the subsetting to be defined.' + end + +end -- cgit v1.2.3