class Dockage::SSH

Constants

SSH_OPTS

Public Class Methods

connect(opts) click to toggle source
# File lib/dockage/ssh.rb, line 19
def connect(opts)
  set_ssh_command(opts)
  Dockage.debug(@command)
  system(@command)
  exit 0
end
execute(provision, opts) click to toggle source
# File lib/dockage/ssh.rb, line 6
def execute(provision, opts)
  return Dockage.logger('Nothing to provide') unless provision
  set_ssh_command(opts)
  Dockage.logger("Provisioning #{ provision.map{ |k,v| "#{k.to_s.yellow}: #{v}" }.join }")
  execute = "#{@command} #{provision[:inline]}" if provision[:inline]
  if provision[:script]
    Dockage.error("File #{provision[:script].bold} is not exist") unless File.exist?(provision[:script])
    execute = "cat #{provision[:script]} | #{@command}"
  end
  Dockage.verbose(execute)
  system(execute)
end
set_ssh_command(opts) click to toggle source
# File lib/dockage/ssh.rb, line 26
def set_ssh_command(opts)
  raise SSHOptionsError if !opts[:login] || !opts[:host]
  return if @command
  @command = which_ssh
  @command += SSH_OPTS.map { |opt| " -o #{opt}" }.join if SSH_OPTS.any?
  @command += " -A" if opts[:forward_agent]
  @command += " -i #{opts[:identity_file]}" if opts[:identity_file]
  @command += " #{opts[:login]}@#{opts[:host]}"
  @command += " -p #{opts[:port]}" if opts[:port]
  @command += " -q" unless Dockage.verbose_mode
end

Private Class Methods

which_ssh() click to toggle source
# File lib/dockage/ssh.rb, line 40
def which_ssh
  Dockage.which('ssh')
end
which_ssh_add() click to toggle source
# File lib/dockage/ssh.rb, line 44
def which_ssh_add
  Dockage.which('ssh-add')
end