class Proclib::SshSession
Attributes
ssh_opts[R]
Public Class Methods
new(ssh_opts)
click to toggle source
# File lib/proclib/ssh_session.rb, line 5 def initialize(ssh_opts) @ssh_opts = ssh_opts.clone end
Public Instance Methods
run(cmd, tag: nil, log_to_console: false, capture_output: true, env: {}, on_output: nil, cwd: nil, stdin: nil, ssh: nil )
click to toggle source
# File lib/proclib/ssh_session.rb, line 9 def run(cmd, tag: nil, log_to_console: false, capture_output: true, env: {}, on_output: nil, cwd: nil, stdin: nil, ssh: nil ) inv = Invocation.new(cmd, tag: tag, env: env, ssh: session, stdin: stdin, cwd: cwd) executor = Executor.new(inv.commands, log_to_console: log_to_console, cache_output: capture_output ).tap do |ex| ex.on_output(&on_output) unless on_output.nil? end executor.run_sync rescue Invocation::Invalid => e raise ArgumentError, e.message end
Private Instance Methods
session()
click to toggle source
# File lib/proclib/ssh_session.rb, line 45 def session @session ||= Net::SSH.start(*ssh_params, ssh_opts) end
ssh_params()
click to toggle source
# File lib/proclib/ssh_session.rb, line 41 def ssh_params %i(host user).map {|i| ssh_opts.delete(i)}.compact end