testplane
Version:
Tests framework based on mocha and wdio
108 lines • 6.1 kB
JavaScript
;
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