Class: Kraaken::Ssh::Connection
- Inherits:
-
Object
- Object
- Kraaken::Ssh::Connection
- Defined in:
- lib/kraaken/ssh/connection.rb
Instance Method Summary collapse
-
#initialize(ssh, logger:) ⇒ Connection
constructor
A new instance of Connection.
- #read_file(path) ⇒ Object
- #run(positional_script = nil, log: true, script: nil) ⇒ Object
- #write_file(path, content) ⇒ Object
Constructor Details
#initialize(ssh, logger:) ⇒ Connection
Returns a new instance of Connection.
4 5 6 7 |
# File 'lib/kraaken/ssh/connection.rb', line 4 def initialize(ssh, logger:) @logger = logger @ssh = ssh end |
Instance Method Details
#read_file(path) ⇒ Object
21 22 23 |
# File 'lib/kraaken/ssh/connection.rb', line 21 def read_file(path) run "cat #{path}", log: false end |
#run(positional_script = nil, log: true, script: nil) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/kraaken/ssh/connection.rb', line 9 def run(positional_script = nil, log: true, script: nil) script ||= positional_script output = [] logger.info script if log ssh.exec!(script) do |channel, stream, data| logger.debug data if log output << data rescue Encoding::UndefinedConversionError end output.join("\n") end |
#write_file(path, content) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/kraaken/ssh/connection.rb', line 25 def write_file(path, content) run log: false, script: <<~BASH cat <<'EOT' > #{path} #{content} EOT BASH end |