class Fastlane::Helper::AdbHelper

Attributes

adb_host[RW]

Path to the adb binary

adb_path[RW]

Path to the adb binary

devices[RW]

All available devices

Public Class Methods

new(adb_path: nil, adb_host: nil) click to toggle source
# File fastlane/lib/fastlane/helper/adb_helper.rb, line 21
def initialize(adb_path: nil, adb_host: nil)
  android_home = ENV['ANDROID_HOME'] || ENV['ANDROID_SDK_ROOT'] || ENV['ANDROID_SDK']
  if (adb_path.nil? || adb_path == "adb") && android_home
    adb_path = File.join(android_home, "platform-tools", "adb")
  end

  self.adb_path = Helper.get_executable_path(File.expand_path(adb_path))
  self.adb_host = adb_host
end

Public Instance Methods

device_available?(serial) click to toggle source
# File fastlane/lib/fastlane/helper/adb_helper.rb, line 47
def device_available?(serial)
  load_all_devices
  return devices.map(&:serial).include?(serial)
end
device_avalaible?(serial) click to toggle source
# File fastlane/lib/fastlane/helper/adb_helper.rb, line 42
def device_avalaible?(serial)
  UI.deprecated("Please use `device_available?` instead... This will be removed in a future version of fastlane")
  device_available?(serial)
end
host_option() click to toggle source
# File fastlane/lib/fastlane/helper/adb_helper.rb, line 31
def host_option
  return self.adb_host ? "-H #{adb_host}" : nil
end
load_all_devices() click to toggle source
# File fastlane/lib/fastlane/helper/adb_helper.rb, line 52
def load_all_devices
  self.devices = []

  command = [adb_path.shellescape, host_option, "devices -l"].compact.join(" ")
  output = Actions.sh(command, log: false)
  output.split("\n").each do |line|
    if (result = line.match(/^(\S+)(\s+)(device )/))
      self.devices << AdbDevice.new(serial: result[1])
    end
  end
  self.devices
end
trigger(command: nil, serial: nil) click to toggle source

Run a certain action

# File fastlane/lib/fastlane/helper/adb_helper.rb, line 36
def trigger(command: nil, serial: nil)
  android_serial = serial != "" ? "ANDROID_SERIAL=#{serial}" : nil
  command = [android_serial, adb_path.shellescape, host_option, command].compact.join(" ").strip
  Action.sh(command)
end