UNPKG

appium-android-driver

Version:

Android UiAutomator and Chrome support for Appium

38 lines 1.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mobileShell = mobileShell; const support_1 = require("@appium/support"); const driver_1 = require("appium/driver"); const lodash_1 = __importDefault(require("lodash")); const teen_process_1 = require("teen_process"); const utils_1 = require("../utils"); async function mobileShell(command, args = [], timeout = 20000, includeStderr) { this.assertFeatureEnabled(utils_1.ADB_SHELL_FEATURE); if (!lodash_1.default.isString(command)) { throw new driver_1.errors.InvalidArgumentError(`The 'command' argument is mandatory`); } const adbArgs = [...this.adb.executable.defaultArgs, 'shell', command, ...lodash_1.default.castArray(args)]; this.log.debug(`Running '${this.adb.executable.path} ${support_1.util.quote(adbArgs)}'`); try { const { stdout, stderr } = await (0, teen_process_1.exec)(this.adb.executable.path, adbArgs, { timeout }); if (includeStderr) { // @ts-ignore We know what we are doing here return { stdout, stderr, }; } // @ts-ignore We know what we are doing here return stdout; } catch (e) { const err = /** @type {import('teen_process').ExecError} */ (e); throw this.log.errorWithException(`Cannot execute the '${command}' shell command. ` + `Original error: ${err.message}. ` + `StdOut: ${err.stdout}. StdErr: ${err.stderr}`); } } //# sourceMappingURL=shell.js.map