UNPKG

appium-xcuitest-driver

Version:

Appium driver for iOS using XCUITest for backend

55 lines 2.21 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDriverInfo = void 0; exports.printUser = printUser; const support_1 = require("appium/support"); const utils_1 = require("../../utils"); const node_path_1 = __importDefault(require("node:path")); const teen_process_1 = require("teen_process"); const logger_1 = require("../../logger"); const MODULE_NAME = 'appium-xcuitest-driver'; const getModuleManifest = (0, utils_1.memoize)(async function getModuleManifest() { let currentDir = node_path_1.default.resolve(__dirname); let isAtFsRoot = false; while (!isAtFsRoot) { const manifestPath = node_path_1.default.join(currentDir, 'package.json'); try { if (await support_1.fs.exists(manifestPath)) { const manifest = JSON.parse(await support_1.fs.readFile(manifestPath, 'utf8')); if (manifest.name === MODULE_NAME) { return manifest; } } } catch { } const parentDir = node_path_1.default.dirname(currentDir); isAtFsRoot = currentDir.length <= parentDir.length; currentDir = parentDir; } throw new Error(`Cannot find the package manifest of the ${MODULE_NAME} Node.js module`); }); /** Gets driver build/version metadata from package manifest. */ exports.getDriverInfo = (0, utils_1.memoize)(async function getDriverInfo() { const [stat, manifest] = await Promise.all([ support_1.fs.stat(node_path_1.default.resolve(__dirname, '../..')), getModuleManifest(), ]); return { built: stat.mtime.toString(), version: manifest.version, }; }); /** Logs effective OS user running the current process. */ async function printUser() { try { const { stdout } = await (0, teen_process_1.exec)('whoami'); logger_1.log.debug(`Current user: '${stdout.trim()}'`); } catch (err) { logger_1.log.debug(`Unable to get username running server: ${err.message}`); } } //# sourceMappingURL=runtime.js.map