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