Class | BoxGrinder::AugeasHelper |
In: |
lib/boxgrinder-build/helpers/augeas-helper.rb
lib/boxgrinder-build/helpers/augeas-helper.rb |
Parent: | Object |
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 23 23: def initialize(guestfs, guestfs_helper, options = {}) 24: @guestfs = guestfs 25: @guestfs_helper = guestfs_helper 26: @log = options[:log] || LogHelper.new 27: 28: @files = {} 29: end
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 23 23: def initialize(guestfs, guestfs_helper, options = {}) 24: @guestfs = guestfs 25: @guestfs_helper = guestfs_helper 26: @log = options[:log] || LogHelper.new 27: 28: @files = {} 29: end
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 31 31: def edit(&block) 32: @log.debug "Changing configuration files using augeas..." 33: 34: instance_eval &block if block 35: 36: if @files.empty? 37: @log.debug "No files specified to change, skipping..." 38: return 39: end 40: 41: if @guestfs.debug("help", []).include?('core_pattern') 42: @log.trace "Enabling coredump catching for augeas..." 43: @guestfs.debug("core_pattern", ["/sysroot/core"]) 44: end 45: 46: @guestfs.aug_init("/", 32) 47: 48: unload = [] 49: 50: @files.keys.each do |file_name| 51: unload << ". != '#{file_name}'" 52: end 53: 54: @guestfs.aug_rm("/augeas/load//incl[#{unload.join(' and ')}]") 55: @guestfs.aug_load 56: 57: @files.each do |file, changes| 58: changes.each do |key, value| 59: 60: @guestfs.aug_set("/files#{file}/#{key}", value) 61: end 62: end 63: 64: @guestfs.aug_save 65: @guestfs.aug_close 66: 67: @log.debug "Augeas changes saved." 68: end
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 31 31: def edit(&block) 32: @log.debug "Changing configuration files using augeas..." 33: 34: instance_eval &block if block 35: 36: if @files.empty? 37: @log.debug "No files specified to change, skipping..." 38: return 39: end 40: 41: if @guestfs.debug("help", []).include?('core_pattern') 42: @log.trace "Enabling coredump catching for augeas..." 43: @guestfs.debug("core_pattern", ["/sysroot/core"]) 44: end 45: 46: @guestfs.aug_init("/", 32) 47: 48: unload = [] 49: 50: @files.keys.each do |file_name| 51: unload << ". != '#{file_name}'" 52: end 53: 54: @guestfs.aug_rm("/augeas/load//incl[#{unload.join(' and ')}]") 55: @guestfs.aug_load 56: 57: @files.each do |file, changes| 58: changes.each do |key, value| 59: 60: @guestfs.aug_set("/files#{file}/#{key}", value) 61: end 62: end 63: 64: @guestfs.aug_save 65: @guestfs.aug_close 66: 67: @log.debug "Augeas changes saved." 68: end
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 70 70: def set(name, key, value) 71: unless @guestfs.exists(name) != 0 72: @log.debug "File '#{name}' doesn't exists, skipping augeas changes..." 73: return 74: end 75: 76: @files[name] = {} unless @files.has_key?(name) 77: @files[name][key] = value 78: end
# File lib/boxgrinder-build/helpers/augeas-helper.rb, line 70 70: def set(name, key, value) 71: unless @guestfs.exists(name) != 0 72: @log.debug "File '#{name}' doesn't exists, skipping augeas changes..." 73: return 74: end 75: 76: @files[name] = {} unless @files.has_key?(name) 77: @files[name][key] = value 78: end