class Vana::Element::Copy

copy element

Public Instance Methods

action(host, *_args) click to toggle source
# File lib/vana/element/copy.rb, line 38
def action(host, *_args)
  if host == 'localhost'
    begin
      FileUtils.cp_r(@opts[:src], @opts[:dest], preserve: @opts[:preserve_time])
      success = true
    rescue Errno::ENOENT
      success = false
    end
    {
      src: @opts[:src],
      dest: @opts[:dest],
      success: success
    }
  elsif @opts[:remote_src]
    # TODO
  else
    begin
      Net::SCP.start(host, nil) do |scp|
        scp.upload!(@opts[:src], @opts[:dest], recursive: true, preserve: @opts[:preserve_time])
      end
      success = true
    rescue Net::SCP::Error
      success = false
    end
    {
      src: @opts[:src],
      dest: @opts[:dest],
      success: success
    }
  end
end
dest=(dest) click to toggle source
# File lib/vana/element/copy.rb, line 26
def dest=(dest)
  @opts[:dest] = dest
end
preserve_time=(preserve_time) click to toggle source
# File lib/vana/element/copy.rb, line 34
def preserve_time=(preserve_time)
  @opts[:preserve_time] = preserve_time
end
remote_src=(remote_src) click to toggle source
# File lib/vana/element/copy.rb, line 30
def remote_src=(remote_src)
  @opts[:remote_src] = remote_src
end
setup(*args) click to toggle source
# File lib/vana/element/copy.rb, line 15
def setup(*args)
  @opts[:src] ||= args[0]
  @opts[:dest] ||= args[1]

  @element_opts[:name] ||= "copy #{@opts[:src]} to #{@opts[:dest]}"
end
src=(src) click to toggle source
# File lib/vana/element/copy.rb, line 22
def src=(src)
  @opts[:src] = src
end