class DRbQS::CommandTask::CommandExecute

Execute a command and transfer files if needed.

Public Class Methods

new(cmds, opts = {}) click to toggle source
# File lib/drbqs/ext/task/command_task.rb, line 7
def initialize(cmds, opts = {})
  opts.assert_valid_keys(:transfer, :compress)
  @cmds = cmds
  if String === @cmds
    @cmds = [@cmds]
  elsif !(Array === @cmds)
    raise ArgumentError, "Invalid command: #{@cmds.inspect}"
  end
  @transfer = opts[:transfer]
  @compress = opts[:compress]
end

Public Instance Methods

exec() click to toggle source
# File lib/drbqs/ext/task/command_task.rb, line 19
def exec
  exit_status_ary = @cmds.map do |cmd|
    system(cmd)
    $?.exitstatus
  end
  if @transfer
    if @transfer.respond_to?(:each)
      @transfer.each { |path| DRbQS::Transfer.enqueue(path, :compress => @compress) }
    else
      DRbQS::Transfer.enqueue(@transfer, :compress => @compress)
    end
  end
  exit_status_ary
end