Class: SSHKit::CommandSudoSshForward
- Inherits:
-
Command
- Object
- Command
- SSHKit::CommandSudoSshForward
- Defined in:
- lib/sshkit/command_sudo_ssh_forward.rb
Instance Method Summary collapse
- #environment_hash ⇒ Object
- #environment_string ⇒ Object
- #ssh_agent(&block) ⇒ Object
- #to_command ⇒ Object
- #user(&block) ⇒ Object
- #with(&block) ⇒ Object
Instance Method Details
#environment_hash ⇒ Object
33 34 35 |
# File 'lib/sshkit/command_sudo_ssh_forward.rb', line 33 def environment_hash default_env.merge() end |
#environment_string ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/sshkit/command_sudo_ssh_forward.rb', line 23 def environment_string environment_hash.collect do |key,value| if key.is_a? Symbol "#{key.to_s.upcase}=#{value}" else "#{key.to_s}=#{value}" end end.join(' ') end |
#ssh_agent(&block) ⇒ Object
37 38 39 40 |
# File 'lib/sshkit/command_sudo_ssh_forward.rb', line 37 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 ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/sshkit/command_sudo_ssh_forward.rb', line 3 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(&block) ⇒ Object
42 43 44 45 46 |
# File 'lib/sshkit/command_sudo_ssh_forward.rb', line 42 def user(&block) return yield unless [:user] shell = [:shell] || 'sh' "sudo -u #{options[:user]} #{environment_string + " " unless environment_string.empty?}-- #{shell} -c '%s'" % %Q{#{yield}} end |
#with(&block) ⇒ Object
48 49 50 51 |
# File 'lib/sshkit/command_sudo_ssh_forward.rb', line 48 def with(&block) return yield if environment_hash.empty? || sudo_command? "( #{environment_string} %s )" % yield end |