Sha256: deab54c1034081ba8c4f5999f2d2cf3fe8a926a8dd3b2cd1c3b0bc44b0062fb5

Contents?: true

Size: 703 Bytes

Versions: 1

Compression:

Stored size: 703 Bytes

Contents

# frozen_string_literal: true

class Kraaken::Ssh::Connection
  def initialize(ssh, logger:)
    @logger = logger
    @ssh = ssh
  end

  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

  def read_file(path)
    run "cat #{path}", log: false
  end

  def write_file(path, content)
    run log: false, script: <<~BASH
      cat <<'EOT' > #{path}
      #{content}
      EOT
    BASH
  end

  private

  attr_reader :ssh, :logger
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kraaken-0.0.1 lib/kraaken/ssh/connection.rb