plain_file.rb 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. action :replace do
  2. if ::File.exists? new_resource.name
  3. old_content = Chef::Util::FileEdit.new new_resource.name
  4. old_content.search_file_replace(new_resource.before, new_resource.after)
  5. old_content.write_file
  6. new_resource.updated_by_last_action(true)
  7. else
  8. Chef::Log.debug("replace action couldn't be performed. #{new_resource.name} does not exist")
  9. end
  10. end
  11. action :add do
  12. if ::File.exists? new_resource.name
  13. new_file = Chef::Util::FileEdit.new new_resource.name
  14. new_file.insert_line_if_no_match(new_resource.pattern, new_resource.new_line)
  15. new_file.write_file
  16. else
  17. file new_resource.name do
  18. content new_resource.new_line + "\n"
  19. owner new_resource.owner
  20. group new_resource.group
  21. action :create
  22. end
  23. end
  24. new_resource.updated_by_last_action(true)
  25. end
  26. action :remove do
  27. if ::File.exists? new_resource.name
  28. new_file = Chef::Util::FileEdit.new new_resource.name
  29. new_file.search_file_delete_line(new_resource.pattern)
  30. new_file.write_file
  31. new_resource.updated_by_last_action(true)
  32. end
  33. end