class Object

Public Instance Methods

superuser(cmd, options={}) click to toggle source
# File lib/capistrano/ext/superusers.rb, line 8
def superuser(cmd, options={})
  owner       = fetch(:owner,       'nobody')

  user_sudo   = fetch(:user_sudo,   "sudo -u #{owner} -i")
  ssh_forward = fetch(:ssh_forward, "setfacl -m #{owner}:rwx $(dirname $SSH_AUTH_SOCK) && setfacl -m #{owner}:rwx $SSH_AUTH_SOCK")
  shell       = fetch(:user_shell,  :default_shell)

  single_line_cmd = cmd.gsub("\n", '')
  run("#{ssh_forward} && #{user_sudo} #{shell} -c '#{single_line_cmd}'", options)
end