Sha256: 044562a589976cf3ae8b0c193c59fc455406f7e3ba658e91830ff2ee35727810

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

require 'di'
require 'ADB'

require 'stf/client'
require 'stf/log/log'
require 'stf/errors'
require 'stf/model/session'

module Stf
  class StartOneDebugSessionInteractor

    include Log
    include ADB

    def execute(device)
      return false if device.nil?
      serial = device.serial

      begin
        success = DI[:stf].add_device serial
        if success
          logger.info "Device added #{serial}"
        else
          logger.error "Can't add device #{serial}"
          raise
        end

        result = DI[:stf].start_debug serial
        if result.success
          logger.info "Debug started #{serial}"
        else
          logger.error "Can't start debugging session for device #{serial}"
          raise
        end

        execute_adb_with 30, "connect #{result.remoteConnectUrl}"

        shell('exit', {serial: "#{result.remoteConnectUrl}"}, 30)

        return true

      rescue SignalException => e
        raise e
      rescue => e
        begin
          # we will try clean anyway
          DI[:stf].remove_device serial
        rescue
        end

        logger.error "Failed to connect to #{serial}: " + e.message
        return false
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stf-client-0.2.3 lib/stf/interactor/start_one_debug_session_interactor.rb