class Kamal::Configuration::Ssh

def initialize(config:)

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

def log_level

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

def logger

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

def options

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

def port

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

def proxy

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

def to_h

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

def user

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