Module: SSHKitSudoExecute

Defined in:
lib/backupper/sshkit.rb

Instance Method Summary collapse

Instance Method Details

#sudo_execute(*command, password: nil, sudo: false, **options) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/backupper/sshkit.rb', line 5

def sudo_execute(*command, password: nil, sudo: false, **options)
  return execute(*command, options) unless sudo

  prompt = 'SSHKitSudoPassword'
  execute(
    :sudo,
    '-S',
    '-p', prompt,
    '--',
    'bash', '-c', command.map(&:to_s).join(' ').shellescape,
    options.merge(
      interaction_handler: {
        /#{Regexp.escape(prompt)}/ => "#{password}\n"
      }
    )
  )
end