Method: Fig::Protocol::SSH#upload

Defined in:
lib/fig/protocol/ssh.rb

#upload(local_file, uri) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/fig/protocol/ssh.rb', line 86

def upload(local_file, uri)
  unescaped_path = CGI.unescape uri.path

  ssh(uri.host, 'mkdir', '-p', ::File.dirname(unescaped_path)) {
    |error_message|

    raise Fig::NetworkError.new(
      "Unable to create directory on remote: #{error_message}",
    )
  }

  scp(local_file, "#{uri.host}:#{unescaped_path}") {
    |error_message|

    raise Fig::NetworkError.new(
      "Unable to copy #{local_file} to remote: #{error_message}",
    )
  }

  return
end