summaryrefslogtreecommitdiff
path: root/lib/puppet/provider/file_line/ruby.rb
diff options
context:
space:
mode:
authorHailee Kenney <hailee@puppetlabs.com>2016-10-06 15:23:35 -0700
committerHailee Kenney <hailee@puppetlabs.com>2016-10-06 15:31:47 -0700
commitbcab71ded8507de4fd9f89b4dcf798b3d98ace59 (patch)
treea2c2689d612e142f821492fda11ef4e9a55e204a /lib/puppet/provider/file_line/ruby.rb
parentc046716de30c55662cff0d11efa573f0d572d984 (diff)
(MODULES-3590) Fix match_for_absence parameter
Prior to this commit, due to a bug in the exists? method in the file_line provider, match_for_absence didn't work as described (or at all really). Update the exists? logic so that match_for_absence works as described. Additionally add a unit test to prevent regressions and update the documentation for the parameter to reflect the fact that it is ignored when `ensure => present`.
Diffstat (limited to 'lib/puppet/provider/file_line/ruby.rb')
-rw-r--r--lib/puppet/provider/file_line/ruby.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/puppet/provider/file_line/ruby.rb b/lib/puppet/provider/file_line/ruby.rb
index aab6fe2..beeb430 100644
--- a/lib/puppet/provider/file_line/ruby.rb
+++ b/lib/puppet/provider/file_line/ruby.rb
@@ -4,7 +4,11 @@ Puppet::Type.type(:file_line).provide(:ruby) do
true
else
lines.find do |line|
- line.chomp == resource[:line].chomp
+ if resource[:ensure].to_s == 'absent' and resource[:match_for_absence].to_s == 'true'
+ line.chomp =~ Regexp.new(resource[:match])
+ else
+ line.chomp == resource[:line].chomp
+ end
end
end
end