diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2011-08-04 19:17:48 -0700 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2011-08-04 19:17:48 -0700 |
commit | 4c93090e1aad8dfdaa39b4f304d3c87704408b13 (patch) | |
tree | d1fefe1700bc598fad79311f8c85d4767a81d090 /lib/puppet/type/file_line.rb | |
parent | 07d0eca31780bba76f2283ce83f944473ce8fe00 (diff) |
(#8792) Rename whole_line type to file_line
Without this patch the resource whole_line would be included in the
stable stdlib module shipping in PE 1.2. Ideally the name will be
stable and unchanging in the future.
There was quite a bit of concern over whole_line being an unwise name.
file_line appears to be the most suitable name and least likely to need
another rename in the future.
Diffstat (limited to 'lib/puppet/type/file_line.rb')
-rw-r--r-- | lib/puppet/type/file_line.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/puppet/type/file_line.rb b/lib/puppet/type/file_line.rb new file mode 100644 index 0000000..aacd6d9 --- /dev/null +++ b/lib/puppet/type/file_line.rb @@ -0,0 +1,44 @@ +Puppet::Type.newtype(:file_line) do + + desc <<-EOT + Type that can append whole a line to a file if it does not already contain it. + + Example: + + file_line { 'sudo_rule': + path => '/etc/sudoers', + line => '%admin ALL=(ALL) ALL', + } + + EOT + + ensurable do + defaultto :present + newvalue(:present) do + provider.create + end + end + + newparam(:name, :namevar => true) do + desc 'arbitrary name used as identity' + end + + newparam(:line) do + desc 'The line to be appended to the path.' + end + + newparam(:path) do + desc 'File to possibly append a line to.' + 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 + + validate do + unless self[:line] and self[:path] + raise(Puppet::Error, "Both line and path are required attributes") + end + end +end |