class AdbExtended::CLI
Public Instance Methods
ashell()
click to toggle source
# File lib/adb_extended/cli.rb, line 44 def ashell serial = pick_device AdbExtended::Adb.shell(serial) end
devices()
click to toggle source
# File lib/adb_extended/cli.rb, line 15 def devices() devices = AdbExtended::Adb.devices table = Terminal::Table.new do |t| header_row = %w(# Model Serial) if options.battery? header_row.push('Battery') end t << header_row t << :separator devices.each_with_index {|value, index| row = [index + 1, value[:model], value[:serial]] if options.battery? battery_level = AdbExtended::Adb.battery(value[:serial]).gsub('level:', '') row.push(battery_level) end t.add_row row } end puts table end
install(path)
click to toggle source
# File lib/adb_extended/cli.rb, line 126 def install(path) if options.all AdbExtended::Adb.install(path) exit(0) end serial = pick_device AdbExtended::Adb.install(path, serial) end
logcat(package = nil)
click to toggle source
# File lib/adb_extended/cli.rb, line 119 def logcat(package = nil) serial = pick_device AdbExtended::Adb.logcat(serial, options[:level], package) end
login()
click to toggle source
# File lib/adb_extended/cli.rb, line 51 def login() # Get the username/password # Show the list of existing usernames/passwords user_file_path = "#{$configuration_file_dir}/app_users.yml" create_config_file(user_file_path) users = YAML.load_file(user_file_path) unless users users = {} end table = Terminal::Table.new do |t| header_row = %w(# Username) t << header_row t << :separator if users.size > 0 users.each_with_index {|(key, value), index| row = [index + 1, value[:username]] t.add_row row } end row = [users.size + 1, "Add new user"] t.add_row row end puts table accepted_inputs = *(1..users.size + 1).map {|i| i.to_s} index = ask("Select an account to login (1 - #{users.size + 1}):", :limited_to => accepted_inputs).to_i - 1 if index > users.size - 1 # Create new user and save it or overwrite existing user username = ask("Enter a username:") password = ask("Enter a password:") users[username] = {:username => username, :password => password} File.open(user_file_path, "w") { |file| file.write(users.to_yaml) } user = users[username] else user = users[users.keys[index]] end if options.all AdbExtended::Adb.enter_text(user[:username], false) AdbExtended::Adb.enter_text(user[:password], true) else device = pick_device AdbExtended::Adb.enter_text(user[:username], false, device) AdbExtended::Adb.enter_text(user[:password], true, device) end end
pidcat(package = nil)
click to toggle source
# File lib/adb_extended/cli.rb, line 112 def pidcat(package = nil) serial = pick_device AdbExtended::Adb.pidcat(serial, options[:level], package) end
screencap()
click to toggle source
# File lib/adb_extended/cli.rb, line 148 def screencap() if options.all AdbExtended::Adb.screenshot() exit(0) end serial = pick_device AdbExtended::Adb.screenshot(serial) end
uninstall(package)
click to toggle source
# File lib/adb_extended/cli.rb, line 137 def uninstall(package) if options.all AdbExtended::Adb.uninstall(package) exit(0) end serial = pick_device AdbExtended::Adb.uninstall(package, serial) end
Private Instance Methods
create_config_file(path)
click to toggle source
# File lib/adb_extended/cli.rb, line 191 def create_config_file(path) dirname = File.dirname(path) unless File.directory?(dirname) FileUtils.mkdir_p(dirname) end File.open(path, 'a+') end
pick_device()
click to toggle source
Returns the serial number of the chosen device
# File lib/adb_extended/cli.rb, line 160 def pick_device devices = AdbExtended::Adb.devices if devices.size == 0 puts 'No devices found' exit 1 end if devices.size == 1 return devices[0][:serial] end table = Terminal::Table.new do |t| header_row = %w(# Model Serial) t << header_row t << :separator devices.each_with_index {|value, index| row = [index + 1, value[:model], value[:serial]] t.add_row row } end puts table accepted_inputs = *(1..devices.size).map {|i| i.to_s} index = ask("Select a device (1 - #{devices.size}):", :limited_to => accepted_inputs).to_i - 1 devices[index][:serial] end