Class: Sumodev::Commands::Ssh

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/sumodev/commands/ssh.rb

Constant Summary collapse

Servers =
{
  :web1  => {:login => 'root', :host => 'web01.crsolutions.be'},
  :web2  => {:login => 'root', :host => 'web02.crsolutions.be'},
  :mysql => {:login => 'root', :host => 'mysql01.crsolutions.be'},
  :mail  => {:login => 'root', :host => 'mail.crsolutions.be'},
  :mail2 => {:login => 'root', :host => 'mail02.crsolutions.be'},
  :sumodev => {:login => 'sites', :host => 'dev.sumocoders.eu'}
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.help(shell) ⇒ Object



21
22
23
24
25
# File 'lib/sumodev/commands/ssh.rb', line 21

def help(shell)
  super

  shell.say "Possible servers: #{Servers.keys.join(', ')}"
end

Instance Method Details

#check_ssh_keyObject



28
29
30
31
32
33
34
35
# File 'lib/sumodev/commands/ssh.rb', line 28

def check_ssh_key
  if Dir.glob(ENV["HOME"] + "/.ssh/id_[rd]sa").none?
    # No SSH key installed
    if yes?("No SSH key installed! Do you want me to generate one for you?")
      run "ssh-keygen -t rsa -f #{ENV["HOME"]}/.ssh/id_rsa"
    end
  end
end

#connectObject



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/sumodev/commands/ssh.rb', line 37

def connect
  server_details = Servers[server.to_sym]

  if server_details
     = options.fetch(:login, server_details[:login])
    host  = server_details[:host]

    run "ssh #{}@#{host}"
  else
    say "No such server definition"
  end
end