module Adb::Peco

Constants

AdbUnavailableError
VERSION

Public Class Methods

adb_action() click to toggle source
# File lib/adb/peco.rb, line 36
def self.adb_action
  ARGV.reject{|a| a[0] == '-'}.first
end
adb_available?() click to toggle source
# File lib/adb/peco.rb, line 26
def self.adb_available?
  system('which', 'adb', out: File::NULL)
end
ensure_adb_available() click to toggle source
# File lib/adb/peco.rb, line 30
def self.ensure_adb_available
  unless adb_available?
    raise AdbUnavailableError, 'adb command is not available.'
  end
end
need_serial_option?() click to toggle source
# File lib/adb/peco.rb, line 40
def self.need_serial_option?
  !['help',
    'devices',
    'version',
    'start-server',
    'stop-server',
  ].include?(adb_action)
end
quote(args) click to toggle source
# File lib/adb/peco.rb, line 49
def self.quote(args)
  args.map{|a| a.include?(' ') ? %Q{"#{a}"} : a }
end
serial_option() click to toggle source
# File lib/adb/peco.rb, line 9
def self.serial_option
  return nil unless adb_action
  return nil unless need_serial_option?

  devices = DeviceAPI::Android.devices
  return nil if devices.size <= 1 || devices.size == 0

  device = PecoSelector.select_from(devices.map{|device|
    ["#{device.model} (#{device.qualifier})", device]
  }).first
  "-s #{device.qualifier}"

rescue PecoSelector::PecoUnavailableError => e
  puts e.message
  exit 1
end