class Imagemaster3000::Actions::Copy
Attributes
filename[RW]
name[RW]
source[RW]
target[RW]
Public Class Methods
new(source: nil, target: nil, name: nil)
click to toggle source
# File lib/imagemaster3000/actions/copy.rb, line 6 def initialize(source: nil, target: nil, name: nil) raise Imagemaster3000::Errors::ArgumentError, 'neither source nor target can be nil' if source.empty? || target.empty? @filename = source @source = File.join(Imagemaster3000::Settings[:'definitions-dir'], 'files', source) @target = target @name = name logger.debug "Created action #{inspect}" end
Public Instance Methods
run(image_file)
click to toggle source
# File lib/imagemaster3000/actions/copy.rb, line 16 def run(image_file) logger.debug "Running 'copy' action with source #{source.inspect} and target #{target.inspect} on file #{image_file.inspect}" copy image_file rename image_file if name rescue Imagemaster3000::Errors::CommandExecutionError => ex raise Imagemaster3000::Errors::ActionError, ex end
Private Instance Methods
copy(image_file)
click to toggle source
# File lib/imagemaster3000/actions/copy.rb, line 26 def copy(image_file) Imagemaster3000::Utils::CommandExecutioner.execute Imagemaster3000::Settings[:'binaries-virt-copy-in'], '-a', image_file, source, target end
rename(image_file)
click to toggle source
# File lib/imagemaster3000/actions/copy.rb, line 34 def rename(image_file) Imagemaster3000::Utils::CommandExecutioner.execute Imagemaster3000::Settings[:'binaries-guestfish'], '-a', image_file, '-i', 'mv', File.join(target, filename), File.join(target, name) end