Class: Net::SSH::Connection::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/nuggets/net/ssh.rb

Instance Method Summary collapse

Instance Method Details

#exec_sudo(command, prompt = /password/, &block) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/nuggets/net/ssh.rb', line 31

def exec_sudo(command, prompt = /password/, &block)
  block ||= lambda { |data| ask(data) { |q| q.echo = false } }

  open_channel { |ch|
    ch.request_pty

    ch.exec("sudo #{command}") { ch.on_data { |_, data|
      ch.send_data("#{block[data]}\n") if data =~ prompt
    } }

    ch.wait
  }
end