class BoxGrinder::AugeasHelper
Public Class Methods
new(guestfs, guestfs_helper, options = {})
click to toggle source
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 23 def initialize(guestfs, guestfs_helper, options = {}) @guestfs = guestfs @guestfs_helper = guestfs_helper @log = options[:log] || LogHelper.new @files = {} end
Public Instance Methods
edit(&block)
click to toggle source
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 31 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
set(name, key, value)
click to toggle source
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 70 def set(name, key, value) unless @guestfs.exists(name) != 0 @log.debug "File '#{name}' doesn't exists, skipping augeas changes..." return end @files[name] = {} unless @files.has_key?(name) @files[name][key] = value end