Path: blob/main/build/azure-pipelines/distro/mixin-quality.js
3520 views
"use strict";1var __importDefault = (this && this.__importDefault) || function (mod) {2return (mod && mod.__esModule) ? mod : { "default": mod };3};4Object.defineProperty(exports, "__esModule", { value: true });5/*---------------------------------------------------------------------------------------------6* Copyright (c) Microsoft Corporation. All rights reserved.7* Licensed under the MIT License. See License.txt in the project root for license information.8*--------------------------------------------------------------------------------------------*/9const fs_1 = __importDefault(require("fs"));10const path_1 = __importDefault(require("path"));11function log(...args) {12console.log(`[${new Date().toLocaleTimeString('en', { hour12: false })}]`, '[distro]', ...args);13}14function main() {15const quality = process.env['VSCODE_QUALITY'];16if (!quality) {17throw new Error('Missing VSCODE_QUALITY, skipping mixin');18}19log(`Mixing in distro quality...`);20const basePath = `.build/distro/mixin/${quality}`;21for (const name of fs_1.default.readdirSync(basePath)) {22const distroPath = path_1.default.join(basePath, name);23const ossPath = path_1.default.relative(basePath, distroPath);24if (ossPath === 'product.json') {25const distro = JSON.parse(fs_1.default.readFileSync(distroPath, 'utf8'));26const oss = JSON.parse(fs_1.default.readFileSync(ossPath, 'utf8'));27let builtInExtensions = oss.builtInExtensions;28if (Array.isArray(distro.builtInExtensions)) {29log('Overwriting built-in extensions:', distro.builtInExtensions.map(e => e.name));30builtInExtensions = distro.builtInExtensions;31}32else if (distro.builtInExtensions) {33const include = distro.builtInExtensions['include'] ?? [];34const exclude = distro.builtInExtensions['exclude'] ?? [];35log('OSS built-in extensions:', builtInExtensions.map(e => e.name));36log('Including built-in extensions:', include.map(e => e.name));37log('Excluding built-in extensions:', exclude);38builtInExtensions = builtInExtensions.filter(ext => !include.find(e => e.name === ext.name) && !exclude.find(name => name === ext.name));39builtInExtensions = [...builtInExtensions, ...include];40log('Final built-in extensions:', builtInExtensions.map(e => e.name));41}42else {43log('Inheriting OSS built-in extensions', builtInExtensions.map(e => e.name));44}45const result = { webBuiltInExtensions: oss.webBuiltInExtensions, ...distro, builtInExtensions };46fs_1.default.writeFileSync(ossPath, JSON.stringify(result, null, '\t'), 'utf8');47}48else {49fs_1.default.cpSync(distroPath, ossPath, { force: true, recursive: true });50}51log(distroPath, '✔︎');52}53}54main();55//# sourceMappingURL=mixin-quality.js.map5657