summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorasif.shaikh <ripclaw_ffb@hotmail.com>2017-02-01 20:14:27 -0800
committerEric Putnam <putnam.eric@gmail.com>2017-07-18 14:24:43 -0700
commit703fa777e1daee97e2aea529064d773662ef1fe0 (patch)
tree74b26c4edd0858327d670ae39689e5b22c806ce4 /lib
parent596878a7bc1fd4a64da89c5c760accb3e8178ec1 (diff)
Add new file_line option append_on_no_match
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/provider/file_line/ruby.rb4
-rw-r--r--lib/puppet/type/file_line.rb8
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/puppet/provider/file_line/ruby.rb b/lib/puppet/provider/file_line/ruby.rb
index 2f6c8ef..16f2709 100644
--- a/lib/puppet/provider/file_line/ruby.rb
+++ b/lib/puppet/provider/file_line/ruby.rb
@@ -12,7 +12,9 @@ Puppet::Type.type(:file_line).provide(:ruby) do
found = lines_count > 0
else
match_count = count_matches(new_match_regex)
- if resource[:replace].to_s == 'true'
+ if resource[:append_on_no_match].to_s == 'false'
+ found = true
+ elsif resource[:replace].to_s == 'true'
found = lines_count > 0 && lines_count == match_count
else
found = match_count > 0
diff --git a/lib/puppet/type/file_line.rb b/lib/puppet/type/file_line.rb
index 3d691bf..b2357b8 100644
--- a/lib/puppet/type/file_line.rb
+++ b/lib/puppet/type/file_line.rb
@@ -58,7 +58,7 @@ Puppet::Type.newtype(:file_line) do
encoding => "iso-8859-1",
}
- Files with special characters that are not valid UTF-8 will give the
+ Files with special characters that are not valid UTF-8 will give the
error message "invalid byte sequence in UTF-8". In this case, determine
the correct file encoding and specify the correct encoding using the
encoding attribute, the value of which needs to be a valid Ruby character
@@ -136,6 +136,12 @@ Puppet::Type.newtype(:file_line) do
defaultto 'UTF-8'
end
+ newparam(:append_on_no_match) do
+ desc 'If true, append line if match is not found. If false, do not append line if a match is not found'
+ newvalues(true, false)
+ defaultto true
+ end
+
# Autorequire the file resource if it's being managed
autorequire(:file) do
self[:path]