1*3d6e487dSEvan Baconimport { AndroidDeviceManager } from '../../start/platforms/android/AndroidDeviceManager'; 2*3d6e487dSEvan Baconimport { logDeviceArgument } from '../hints'; 3*3d6e487dSEvan Bacon 4*3d6e487dSEvan Baconconst debug = require('debug')('expo:android:resolveDevice'); 5*3d6e487dSEvan Bacon 6*3d6e487dSEvan Bacon/** Given a `device` argument from the CLI, parse and prompt our way to a usable device for building. */ 7*3d6e487dSEvan Baconexport async function resolveDeviceAsync(device?: string | boolean) { 8*3d6e487dSEvan Bacon if (!device) { 9*3d6e487dSEvan Bacon const manager = await AndroidDeviceManager.resolveAsync(); 10*3d6e487dSEvan Bacon debug(`Resolved default device (name: ${manager.device.name}, pid: ${manager.device.pid})`); 11*3d6e487dSEvan Bacon return manager; 12*3d6e487dSEvan Bacon } 13*3d6e487dSEvan Bacon 14*3d6e487dSEvan Bacon debug(`Resolving device from argument: ${device}`); 15*3d6e487dSEvan Bacon const manager = 16*3d6e487dSEvan Bacon device === true 17*3d6e487dSEvan Bacon ? // `--device` (no props after) 18*3d6e487dSEvan Bacon await AndroidDeviceManager.resolveAsync({ shouldPrompt: true }) 19*3d6e487dSEvan Bacon : // `--device <name>` 20*3d6e487dSEvan Bacon await AndroidDeviceManager.resolveFromNameAsync(device); 21*3d6e487dSEvan Bacon logDeviceArgument(manager.device.name); 22*3d6e487dSEvan Bacon return manager; 23*3d6e487dSEvan Bacon} 24