Sha256: 76fbae7e84dad6c6786916d9a0f35f26a47b5b385da21bfc7178d207e63aca0f

Contents?: true

Size: 1.13 KB

Versions: 28

Compression:

Stored size: 1.13 KB

Contents

class Kamal::Configuration::Ssh
  LOGGER = ::Logger.new(STDERR)

  include Kamal::Configuration::Validation

  attr_reader :ssh_config

  def initialize(config:)
    @ssh_config = config.raw_config.ssh || {}
    validate! ssh_config
  end

  def user
    ssh_config.fetch("user", "root")
  end

  def port
    ssh_config.fetch("port", 22)
  end

  def proxy
    if (proxy = ssh_config["proxy"])
      Net::SSH::Proxy::Jump.new(proxy.include?("@") ? proxy : "root@#{proxy}")
    elsif (proxy_command = ssh_config["proxy_command"])
      Net::SSH::Proxy::Command.new(proxy_command)
    end
  end

  def keys_only
    ssh_config["keys_only"]
  end

  def keys
    ssh_config["keys"]
  end

  def key_data
    ssh_config["key_data"]
  end

  def options
    { user: user, port: port, proxy: proxy, logger: logger, keepalive: true, keepalive_interval: 30, keys_only: keys_only, keys: keys, key_data: key_data }.compact
  end

  def to_h
    options.except(:logger).merge(log_level: log_level)
  end

  private
    def logger
      LOGGER.tap { |logger| logger.level = log_level }
    end

    def log_level
      ssh_config.fetch("log_level", :fatal)
    end
end

Version data entries

28 entries across 28 versions & 2 rubygems

Version Path
kamal-2.5.1 lib/kamal/configuration/ssh.rb
kamal-2.5.0 lib/kamal/configuration/ssh.rb
kamal-2.4.0 lib/kamal/configuration/ssh.rb
nocoffee-kamal-2.3.0.3 lib/kamal/configuration/ssh.rb
nocoffee-kamal-2.3.0.2 lib/kamal/configuration/ssh.rb
nocoffee-kamal-2.3.0.1 lib/kamal/configuration/ssh.rb
kamal-2.3.0 lib/kamal/configuration/ssh.rb
kamal-2.2.2 lib/kamal/configuration/ssh.rb
kamal-2.2.1 lib/kamal/configuration/ssh.rb
kamal-2.2.0 lib/kamal/configuration/ssh.rb
kamal-1.9.2 lib/kamal/configuration/ssh.rb
kamal-2.1.2 lib/kamal/configuration/ssh.rb
kamal-2.1.1 lib/kamal/configuration/ssh.rb
kamal-2.1.0 lib/kamal/configuration/ssh.rb
kamal-1.9.1 lib/kamal/configuration/ssh.rb
kamal-2.0.0 lib/kamal/configuration/ssh.rb
kamal-1.9.0 lib/kamal/configuration/ssh.rb
kamal-2.0.0.rc4 lib/kamal/configuration/ssh.rb
kamal-2.0.0.rc3 lib/kamal/configuration/ssh.rb
kamal-2.0.0.rc2 lib/kamal/configuration/ssh.rb