|
@@ -1,44 +1,35 @@
|
|
|
+require 'chef/util/file_edit'
|
|
|
+
|
|
|
action :replace do
|
|
|
- file new_resource.name do
|
|
|
- if ::File.exists? new_resource.name
|
|
|
- old_content = IO.read new_resource.name
|
|
|
- if old_content =~ /#{new_resource.before}/
|
|
|
- content old_content.gsub(new_resource.before, new_resource.after)
|
|
|
- end
|
|
|
- owner new_resource.owner
|
|
|
- group new_resource.group
|
|
|
- else
|
|
|
- Chef::Log.debug("replace action couldn't be performed. #{new_resource.name} does not exist")
|
|
|
- end
|
|
|
+ if ::File.exists? new_resource.name
|
|
|
+ old_content = Chef::Util::FileEdit.new new_resource.name
|
|
|
+ old_content.search_file_replace(new_resource.before, new_resource.after)
|
|
|
+ old_content.write_file
|
|
|
+ else
|
|
|
+ Chef::Log.debug("replace action couldn't be performed. #{new_resource.name} does not exist")
|
|
|
end
|
|
|
end
|
|
|
|
|
|
action :add do
|
|
|
- file new_resource.name do
|
|
|
- if ::File.exists? new_resource.name
|
|
|
- old_content = IO.read new_resource.name
|
|
|
- else
|
|
|
- old_content = ""
|
|
|
+ if ::File.exists? new_resource.name
|
|
|
+ new_file = Chef::Util::FileEdit.new new_resource.name
|
|
|
+ new_file.insert_line_if_no_match(new_resource.pattern, new_resource.new_line)
|
|
|
+ new_file.write_file
|
|
|
+ else
|
|
|
+ file new_resource.name do
|
|
|
+ content new_resource.new_line + "\n"
|
|
|
+ owner new_resource.owner
|
|
|
+ group new_resource.group
|
|
|
+ action :create
|
|
|
end
|
|
|
- old_content << new_resource.new_line + "\n"
|
|
|
- content old_content
|
|
|
- owner new_resource.owner
|
|
|
- group new_resource.group
|
|
|
end
|
|
|
end
|
|
|
|
|
|
action :remove do
|
|
|
- file new_resource.name do
|
|
|
- if ::File.exists? new_resource.name
|
|
|
- old_content = IO.read new_resource.name
|
|
|
- new_content = ""
|
|
|
- old_content.each do |line|
|
|
|
- new_content << line unless line =~ /#{new_resource.pattern}/
|
|
|
- end
|
|
|
- content new_content
|
|
|
- owner new_resource.owner
|
|
|
- group new_resource.group
|
|
|
- end
|
|
|
+ if ::File.exists? new_resource.name
|
|
|
+ new_file = Chef::Util::FileEdit.new new_resource.name
|
|
|
+ new_file.search_file_delete_line(new_resource.pattern)
|
|
|
+ new_file.write_file
|
|
|
end
|
|
|
end
|
|
|
|