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