Sha256: eda87f114aebed3a64764cc0e933bf7855bb50e66bc44c0edbaa2078df06f57c

Contents?: true

Size: 865 Bytes

Versions: 4

Compression:

Stored size: 865 Bytes

Contents

# frozen_string_literal: true

module Specinfra
  module Backend
    # Docker command line transport
    class Dockercli < Exec
      def build_command(cmd)
        docker_cmd = %w[docker exec]
        docker_cmd << '--interactive' if get_config(:interactive_shell)
        docker_cmd << '--tty' if get_config(:request_pty)
        docker_cmd << instance
        (docker_cmd << super(cmd)).join(' ')
      end

      def send_file(from, to)
        to = Pathname.new(to).dirname.to_s if File.directory?(from)
        cmd = %W[docker cp #{from} #{instance}:#{to}]
        spawn_command(cmd.join(' '))
      end

      def send_directory(from, to)
        send_file(from, to)
      end

      private

      def instance
        raise 'Please specify docker_container' unless (container = get_config(:docker_container))

        container
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
specinfra-2.91.0 lib/specinfra/backend/dockercli.rb
specinfra-2.90.1 lib/specinfra/backend/dockercli.rb
specinfra-2.90.0 lib/specinfra/backend/dockercli.rb
specinfra-2.89.0 lib/specinfra/backend/dockercli.rb