UNPKG

testplane

Version:

Tests framework based on mocha and wdio

108 lines 6.1 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUbuntuLinkerEnv = exports.installUbuntuPackageDependencies = exports.writeUbuntuPackageDependencies = exports.ensureUnixBinaryExists = exports.getUbuntuMilestone = exports.isUbuntu = void 0; const lodash_1 = __importDefault(require("lodash")); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const utils_1 = require("../utils"); const apt_1 = require("./apt"); const utils_2 = require("./utils"); const logger = __importStar(require("../../utils/logger")); const constants_1 = require("../constants"); const registry_1 = __importDefault(require("../registry")); var utils_3 = require("./utils"); Object.defineProperty(exports, "isUbuntu", { enumerable: true, get: function () { return utils_3.isUbuntu; } }); Object.defineProperty(exports, "getUbuntuMilestone", { enumerable: true, get: function () { return utils_3.getUbuntuMilestone; } }); Object.defineProperty(exports, "ensureUnixBinaryExists", { enumerable: true, get: function () { return utils_3.ensureUnixBinaryExists; } }); const getDependenciesArrayFilePath = (ubuntuMilestone) => path_1.default.join(__dirname, "autogenerated", `ubuntu-${ubuntuMilestone}-dependencies.json`); const readUbuntuPackageDependencies = async (ubuntuMilestone) => { try { return await fs_extra_1.default.readJSON(getDependenciesArrayFilePath(ubuntuMilestone)); } catch (_) { logger.warn([ `Unable to read ubuntu dependencies for Ubuntu@${ubuntuMilestone}, as this version currently not supported`, `Assuming all necessary packages are installed already`, ].join("\n")); return []; } }; const writeUbuntuPackageDependencies = async (ubuntuMilestone, deps) => { const currentPackages = await readUbuntuPackageDependencies(ubuntuMilestone).catch(() => []); const packagesToWrite = lodash_1.default.uniq(currentPackages.concat(deps)).sort(); await fs_extra_1.default.outputJSON(getDependenciesArrayFilePath(ubuntuMilestone), packagesToWrite, { spaces: 4 }); }; exports.writeUbuntuPackageDependencies = writeUbuntuPackageDependencies; const installUbuntuPackageDependencies = async () => { const ubuntuMilestone = await (0, utils_2.getUbuntuMilestone)(); (0, utils_1.browserInstallerDebug)(`installing ubuntu${ubuntuMilestone} dependencies`); if (registry_1.default.hasOsPackages(constants_1.LINUX_UBUNTU_RELEASE_ID, ubuntuMilestone)) { (0, utils_1.browserInstallerDebug)(`installing ubuntu${ubuntuMilestone} dependencies`); return registry_1.default.getOsPackagesPath(constants_1.LINUX_UBUNTU_RELEASE_ID, ubuntuMilestone); } const downloadFn = async (downloadProgressCallback) => { const ubuntuPackageDependencies = await readUbuntuPackageDependencies(ubuntuMilestone); const ubuntuPackagesDir = (0, utils_1.getOsPackagesDir)(constants_1.LINUX_UBUNTU_RELEASE_ID, ubuntuMilestone); await (0, apt_1.installUbuntuPackages)(ubuntuPackageDependencies, ubuntuPackagesDir, { downloadProgressCallback }); return ubuntuPackagesDir; }; return registry_1.default.installOsPackages(constants_1.LINUX_UBUNTU_RELEASE_ID, ubuntuMilestone, downloadFn); }; exports.installUbuntuPackageDependencies = installUbuntuPackageDependencies; const listDirsAbsolutePath = async (dirBasePath, ...prefix) => { const fullDirPath = path_1.default.join(dirBasePath, ...prefix); if (!fs_extra_1.default.existsSync(fullDirPath)) { return []; } const dirContents = await fs_extra_1.default.readdir(fullDirPath); const dirContentsAbsPaths = dirContents.map(obj => path_1.default.join(fullDirPath, obj)); const directories = []; await Promise.all(dirContentsAbsPaths.map(obj => fs_extra_1.default.stat(obj).then(stat => { if (stat.isDirectory()) { directories.push(obj); } }))); return directories; }; const getUbuntuLinkerEnvRaw = async () => { const ubuntuMilestone = await (0, utils_2.getUbuntuMilestone)(); if (!registry_1.default.hasOsPackages(constants_1.LINUX_UBUNTU_RELEASE_ID, ubuntuMilestone)) { return {}; } const ubuntuPackagesDir = await registry_1.default.getOsPackagesPath(constants_1.LINUX_UBUNTU_RELEASE_ID, ubuntuMilestone); const currentRuntimeLibrariesEnvValue = process.env[constants_1.LINUX_RUNTIME_LIBRARIES_PATH_ENV_NAME]; const [libDirs, usrLibDirs] = await Promise.all([ listDirsAbsolutePath(ubuntuPackagesDir, "lib"), listDirsAbsolutePath(ubuntuPackagesDir, "usr", "lib"), ]); const libraryPaths = [...libDirs, ...usrLibDirs, currentRuntimeLibrariesEnvValue].filter(Boolean); return { [constants_1.LINUX_RUNTIME_LIBRARIES_PATH_ENV_NAME]: libraryPaths.join(":") }; }; exports.getUbuntuLinkerEnv = lodash_1.default.once(getUbuntuLinkerEnvRaw); //# sourceMappingURL=index.js.map