/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ 'use strict'; const chalk = require('chalk'); const child_process = require('child_process'); /** * Starts adb logcat */ function logAndroid() { return new Promise((resolve, reject) => { _logAndroid(resolve, reject); }); } function _logAndroid() { try { const adbPath = process.env.ANDROID_HOME ? process.env.ANDROID_HOME + '/platform-tools/adb' : 'adb'; const adbArgs = ['logcat', '*:S', 'ReactNative:V', 'ReactNativeJS:V']; console.log(chalk.bold( `Starting the logger (${adbPath} ${adbArgs.join(' ')})...` )); const log = child_process.spawnSync(adbPath, adbArgs, {stdio: 'inherit'}); if (log.error !== null) { throw log.error; } } catch (e) { console.log(chalk.red( 'adb invocation failed. Do you have adb in your PATH?' )); return Promise.reject(); } } module.exports = { name: 'log-android', description: 'starts adb logcat', func: logAndroid, };