def edit(&block)
@log.debug "Changing configuration files using augeas..."
instance_eval &block if block
if @files.empty?
@log.debug "No files specified to change, skipping..."
return
end
if @guestfs.debug("help", []).include?('core_pattern')
@log.trace "Enabling coredump catching for augeas..."
@guestfs.debug("core_pattern", ["/sysroot/core"])
end
@guestfs.aug_init("/", 32)
unload = []
@files.keys.sort.each do |file_name|
unload << ". != '#{file_name}'"
end
@guestfs.aug_rm("/augeas/load//incl[#{unload.join(' and ')}]")
@guestfs.aug_load
@files.each do |file, changes|
changes.each do |key, value|
@guestfs.aug_set("/files#{file}/#{key}", value)
end
end
@guestfs.aug_save
@guestfs.aug_close
@log.debug "Augeas changes saved."
end