mirror of
https://github.com/kforney/pentest-distro-builder.git
synced 2024-10-06 20:48:51 -06:00
116 lines
9.3 KiB
JavaScript
116 lines
9.3 KiB
JavaScript
|
/*---------------------------------------------------------------------------------------------
|
||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||
|
*--------------------------------------------------------------------------------------------*/
|
||
|
'use strict';
|
||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||
|
});
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const debugUtil = require("../src/coreclr-debug/util");
|
||
|
const del = require("del");
|
||
|
const fs = require("fs");
|
||
|
const gulp = require("gulp");
|
||
|
const path = require("path");
|
||
|
const spawnNode_1 = require("../tasks/spawnNode");
|
||
|
const projectPaths_1 = require("../tasks/projectPaths");
|
||
|
const CsharpLoggerObserver_1 = require("../src/observers/CsharpLoggerObserver");
|
||
|
const EventStream_1 = require("../src/EventStream");
|
||
|
const packageJson_1 = require("../tasks/packageJson");
|
||
|
const logger_1 = require("../src/logger");
|
||
|
const platform_1 = require("../src/platform");
|
||
|
const PackageManager_1 = require("../src/packageManager/PackageManager");
|
||
|
const NetworkSettings_1 = require("../src/NetworkSettings");
|
||
|
const CSharpExtDownloader_1 = require("../src/CSharpExtDownloader");
|
||
|
const commandLineArguments_1 = require("../tasks/commandLineArguments");
|
||
|
gulp.task('vsix:offline:package', () => __awaiter(this, void 0, void 0, function* () {
|
||
|
del.sync(projectPaths_1.vscodeignorePath);
|
||
|
fs.copyFileSync(projectPaths_1.offlineVscodeignorePath, projectPaths_1.vscodeignorePath);
|
||
|
try {
|
||
|
yield doPackageOffline();
|
||
|
}
|
||
|
finally {
|
||
|
del(projectPaths_1.vscodeignorePath);
|
||
|
}
|
||
|
}));
|
||
|
function doPackageOffline() {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
if (commandLineArguments_1.commandLineOptions.retainVsix) {
|
||
|
//if user doesnot want to clean up the existing vsix packages
|
||
|
cleanSync(false);
|
||
|
}
|
||
|
else {
|
||
|
cleanSync(true);
|
||
|
}
|
||
|
const packageJSON = packageJson_1.getPackageJSON();
|
||
|
const name = packageJSON.name;
|
||
|
const version = packageJSON.version;
|
||
|
const packageName = name + '.' + version;
|
||
|
const packages = [
|
||
|
new platform_1.PlatformInformation('win32', 'x86_64'),
|
||
|
new platform_1.PlatformInformation('darwin', 'x86_64'),
|
||
|
new platform_1.PlatformInformation('linux', 'x86_64')
|
||
|
];
|
||
|
for (let platformInfo of packages) {
|
||
|
yield doOfflinePackage(platformInfo, packageName, packageJSON, projectPaths_1.packedVsixOutputRoot);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
function cleanSync(deleteVsix) {
|
||
|
del.sync('install.*');
|
||
|
del.sync('.omnisharp*');
|
||
|
del.sync('.debugger');
|
||
|
if (deleteVsix) {
|
||
|
del.sync('*.vsix');
|
||
|
}
|
||
|
}
|
||
|
function doOfflinePackage(platformInfo, packageName, packageJSON, outputFolder) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
if (process.platform === 'win32') {
|
||
|
throw new Error('Do not build offline packages on windows. Runtime executables will not be marked executable in *nix packages.');
|
||
|
}
|
||
|
cleanSync(false);
|
||
|
const packageFileName = `${packageName}-${platformInfo.platform}-${platformInfo.architecture}.vsix`;
|
||
|
yield install(platformInfo, packageJSON);
|
||
|
yield doPackageSync(packageFileName, outputFolder);
|
||
|
});
|
||
|
}
|
||
|
// Install Tasks
|
||
|
function install(platformInfo, packageJSON) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
let eventStream = new EventStream_1.EventStream();
|
||
|
const logger = new logger_1.Logger(message => process.stdout.write(message));
|
||
|
let stdoutObserver = new CsharpLoggerObserver_1.CsharpLoggerObserver(logger);
|
||
|
eventStream.subscribe(stdoutObserver.post);
|
||
|
const debuggerUtil = new debugUtil.CoreClrDebugUtil(path.resolve('.'));
|
||
|
let runTimeDependencies = CSharpExtDownloader_1.GetRunTimeDependenciesPackages(packageJSON);
|
||
|
let provider = () => new NetworkSettings_1.default(undefined, undefined);
|
||
|
yield PackageManager_1.DownloadAndInstallPackages(runTimeDependencies, provider, platformInfo, eventStream, projectPaths_1.codeExtensionPath);
|
||
|
yield debugUtil.CoreClrDebugUtil.writeEmptyFile(debuggerUtil.installCompleteFilePath());
|
||
|
});
|
||
|
}
|
||
|
/// Packaging (VSIX) Tasks
|
||
|
function doPackageSync(packageName, outputFolder) {
|
||
|
return __awaiter(this, void 0, void 0, function* () {
|
||
|
let vsceArgs = [];
|
||
|
vsceArgs.push(projectPaths_1.vscePath);
|
||
|
vsceArgs.push('package'); // package command
|
||
|
if (packageName !== undefined) {
|
||
|
vsceArgs.push('-o');
|
||
|
if (outputFolder) {
|
||
|
//if we have specified an output folder then put the files in that output folder
|
||
|
vsceArgs.push(path.join(outputFolder, packageName));
|
||
|
}
|
||
|
else {
|
||
|
vsceArgs.push(packageName);
|
||
|
}
|
||
|
}
|
||
|
return spawnNode_1.default(vsceArgs);
|
||
|
});
|
||
|
}
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZVBhY2thZ2luZ1Rhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGFza3Mvb2ZmbGluZVBhY2thZ2luZ1Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7Z0dBR2dHO0FBRWhHLFlBQVksQ0FBQzs7Ozs7Ozs7OztBQUViLHVEQUF1RDtBQUN2RCwyQkFBMkI7QUFDM0IseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0Isa0RBQTJDO0FBQzNDLHdEQUFxSTtBQUNySSxnRkFBNkU7QUFDN0Usb0RBQWlEO0FBQ2pELHNEQUFzRDtBQUN0RCwwQ0FBdUM7QUFDdkMsOENBQXNEO0FBQ3RELHlFQUFrRjtBQUNsRiw0REFBcUQ7QUFDckQsb0VBQTRFO0FBQzVFLHdFQUFtRTtBQUVuRSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEdBQVMsRUFBRTtJQUN6QyxHQUFHLENBQUMsSUFBSSxDQUFDLCtCQUFnQixDQUFDLENBQUM7SUFFM0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxzQ0FBdUIsRUFBRSwrQkFBZ0IsQ0FBQyxDQUFDO0lBRTNELElBQUk7UUFDQSxNQUFNLGdCQUFnQixFQUFFLENBQUM7S0FDNUI7WUFDTztRQUNKLEdBQUcsQ0FBQywrQkFBZ0IsQ0FBQyxDQUFDO0tBQ3pCO0FBQ0wsQ0FBQyxDQUFBLENBQUMsQ0FBQztBQUVIOztRQUNJLElBQUkseUNBQWtCLENBQUMsVUFBVSxFQUFFO1lBQy9CLDhEQUE4RDtZQUM5RCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEI7YUFDSTtZQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQjtRQUVELE1BQU0sV0FBVyxHQUFHLDRCQUFjLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDcEMsTUFBTSxX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
|