-Puppet::Type.type(:append_line).provide(:ruby) do
+Puppet::Type.type(:whole_line).provide(:ruby) do
def exists?
File.readlines(resource[:path]).find do |line|
-Puppet::Type.newtype(:append_line) do
+Puppet::Type.newtype(:whole_line) do
desc <<-EOT
- Type that can append a line to a file if it does not already contain it.
+ Type that can append whole a line to a file if it does not already contain it.
Example:
- append_line { 'sudo_rule':
+ whole_line { 'sudo_rule':
path => '/etc/sudoers',
line => '%admin ALL=(ALL) ALL',
}
require 'puppet'
require 'tempfile'
-provider_class = Puppet::Type.type(:append_line).provider(:ruby)
+provider_class = Puppet::Type.type(:whole_line).provider(:ruby)
describe provider_class do
before :each do
tmp = Tempfile.new('tmp')
@tmpfile = tmp.path
tmp.close!
- @resource = Puppet::Type::Append_line.new(
+ @resource = Puppet::Type::Whole_line.new(
{:name => 'foo', :path => @tmpfile, :line => 'foo'}
)
@provider = provider_class.new(@resource)
+++ /dev/null
-require 'puppet'
-require 'tempfile'
-describe Puppet::Type.type(:append_line) do
- before :each do
- @append_line = Puppet::Type.type(:append_line).new(:name => 'foo', :line => 'line', :path => '/tmp/path')
- end
- it 'should accept a line and path' do
- @append_line[:line] = 'my_line'
- @append_line[:line].should == 'my_line'
- end
- it 'should accept posix filenames' do
- @append_line[:path] = '/tmp/path'
- @append_line[:path].should == '/tmp/path'
- end
- it 'should not accept unqualified path' do
- expect { @append_line[:path] = 'file' }.should raise_error(Puppet::Error, /File paths must be fully qualified/)
- end
- it 'should require that a line is specified' do
- expect { Puppet::Type.type(:append_line).new(:name => 'foo', :path => '/tmp/file') }.should raise_error(Puppet::Error, /Both line and path are required attributes/)
- end
- it 'should require that a file is specified' do
- expect { Puppet::Type.type(:append_line).new(:name => 'foo', :line => 'path') }.should raise_error(Puppet::Error, /Both line and path are required attributes/)
- end
-end
--- /dev/null
+require 'puppet'
+require 'tempfile'
+describe Puppet::Type.type(:whole_line) do
+ before :each do
+ @whole_line = Puppet::Type.type(:whole_line).new(:name => 'foo', :line => 'line', :path => '/tmp/path')
+ end
+ it 'should accept a line and path' do
+ @whole_line[:line] = 'my_line'
+ @whole_line[:line].should == 'my_line'
+ end
+ it 'should accept posix filenames' do
+ @whole_line[:path] = '/tmp/path'
+ @whole_line[:path].should == '/tmp/path'
+ end
+ it 'should not accept unqualified path' do
+ expect { @whole_line[:path] = 'file' }.should raise_error(Puppet::Error, /File paths must be fully qualified/)
+ end
+ it 'should require that a line is specified' do
+ expect { Puppet::Type.type(:whole_line).new(:name => 'foo', :path => '/tmp/file') }.should raise_error(Puppet::Error, /Both line and path are required attributes/)
+ end
+ it 'should require that a file is specified' do
+ expect { Puppet::Type.type(:whole_line).new(:name => 'foo', :line => 'path') }.should raise_error(Puppet::Error, /Both line and path are required attributes/)
+ end
+end
file { '/tmp/dansfile':
ensure => present
}->
-append_line { 'dans_line':
+whole_line { 'dans_line':
line => 'dan is awesome',
- #path => '/tmp/dansfile',
+ path => '/tmp/dansfile',
}