Sha256: c1e3801b2c88cef51933ee27f28f61ee9c2029cc1da7e2bc082992dd5a48b0d1

Contents?: true

Size: 728 Bytes

Versions: 9

Compression:

Stored size: 728 Bytes

Contents

require 'forwardable'
require 'shellwords'

module Taketo
  module Commands
    class SSHCommand
      extend Forwardable
      include Shellwords

      def initialize(server, options = {})
        @server = server
      end

      def render(rendered_command)
        %Q[ssh -t #{port} #{identity_file} #{username}#{host} "#{rendered_command}"].squeeze(" ")
      end

      def host
        shellescape @server.host
      end

      def port
        %Q[-p #{@server.port}] if @server.port
      end

      def username
        %Q[#{shellescape @server.username}@] if @server.username
      end

      def identity_file
        %Q[-i #{shellescape @server.identity_file}] if @server.identity_file
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
taketo-0.2.0.alpha lib/taketo/commands/ssh_command.rb
taketo-0.1.3 lib/taketo/commands/ssh_command.rb
taketo-0.1.2 lib/taketo/commands/ssh_command.rb
taketo-0.1.1 lib/taketo/commands/ssh_command.rb
taketo-0.1.0 lib/taketo/commands/ssh_command.rb
taketo-0.0.10 lib/taketo/commands/ssh_command.rb
taketo-0.0.9 lib/taketo/commands/ssh_command.rb
taketo-0.0.8 lib/taketo/commands/ssh_command.rb
taketo-0.0.7 lib/taketo/commands/ssh_command.rb