Class: Kamal::Configuration::Ssh

Inherits:
Object
  • Object
show all
Defined in:
lib/kamal/configuration/ssh.rb

Constant Summary collapse

LOGGER =
::Logger.new(STDERR)

Instance Method Summary collapse

Constructor Details

#initialize(config:) ⇒ Ssh

Returns a new instance of Ssh.



4
5
6
# File 'lib/kamal/configuration/ssh.rb', line 4

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

Instance Method Details

#optionsObject



24
25
26
# File 'lib/kamal/configuration/ssh.rb', line 24

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

#portObject



12
13
14
# File 'lib/kamal/configuration/ssh.rb', line 12

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

#proxyObject



16
17
18
19
20
21
22
# File 'lib/kamal/configuration/ssh.rb', line 16

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

#to_hObject



28
29
30
# File 'lib/kamal/configuration/ssh.rb', line 28

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

#userObject



8
9
10
# File 'lib/kamal/configuration/ssh.rb', line 8

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