class SSHKit::CommandSudoSshForward
Public Instance Methods
environment_hash()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 25 def environment_hash default_env.merge(options_env) end
ssh_agent() { || ... }
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 29 def ssh_agent(&block) return yield unless ssh_forwarding_required? "setfacl -m #{options[:user]}:x $(dirname $SSH_AUTH_SOCK) && setfacl -m #{options[:user]}:rw $SSH_AUTH_SOCK && %s" % yield end
to_command()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 5 def to_command return command.to_s unless should_map? within do ssh_agent do umask do with do user do in_background do group do to_s end end end end end end end end
user() { || ... }
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 34 def user(&block) return yield unless options[:user] shell = options[:shell] || 'sh' "sudo -u #{options[:user]} #{environment_string + " " unless environment_string.empty?}-- #{shell} -c '%s'" % %Q{#{yield}} end
with() { || ... }
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 40 def with(&block) return yield if environment_hash.empty? || sudo_command? "( #{environment_string} %s )" % yield end
Private Instance Methods
default_env()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 51 def default_env SSHKit.config.default_env || {} end
default_ssh_options()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 55 def default_ssh_options ssh_forwarding_required? ? {'SSH_AUTH_SOCK' => '$SSH_AUTH_SOCK'} : {} end
options_env()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 47 def options_env (options[:env] || {}).merge(default_ssh_options) end
ssh_command?()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 63 def ssh_command? options.fetch(:ssh_commands, []).include?(command.to_sym) end
ssh_forwarding_enabled?()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 67 def ssh_forwarding_enabled? options[:host] && options[:host].ssh_options[:forward_agent] end
ssh_forwarding_required?()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 59 def ssh_forwarding_required? ssh_command? && sudo_command? && ssh_forwarding_enabled? end
sudo_command?()
click to toggle source
# File lib/sshkit/command_sudo_ssh_forward.rb, line 71 def sudo_command? options[:user] end