mirror of
https://github.com/kforney/pentest-distro-builder.git
synced 2024-10-06 20:48:51 -06:00
61 lines
2.5 KiB
JavaScript
61 lines
2.5 KiB
JavaScript
|
"use strict";
|
||
|
/*---------------------------------------------------------------------------------------------
|
||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
* Licensed under the MIT License. See LICENSE.md in the project root for license information.
|
||
|
*--------------------------------------------------------------------------------------------*/
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const vscode = require("vscode");
|
||
|
const imageNode_1 = require("../explorer/models/imageNode");
|
||
|
const telemetry_1 = require("../telemetry/telemetry");
|
||
|
const docker_endpoint_1 = require("./utils/docker-endpoint");
|
||
|
const quick_pick_image_1 = require("./utils/quick-pick-image");
|
||
|
const teleCmdId = 'vscode-docker.image.remove';
|
||
|
async function removeImage(actionContext, context) {
|
||
|
let imagesToRemove;
|
||
|
if (context instanceof imageNode_1.ImageNode && context.imageDesc) {
|
||
|
imagesToRemove = [context.imageDesc];
|
||
|
}
|
||
|
else {
|
||
|
const selectedItem = await quick_pick_image_1.quickPickImage(actionContext, true);
|
||
|
if (selectedItem) {
|
||
|
if (selectedItem.allImages) {
|
||
|
imagesToRemove = await docker_endpoint_1.docker.getImageDescriptors();
|
||
|
}
|
||
|
else {
|
||
|
imagesToRemove = [selectedItem.imageDesc];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if (imagesToRemove) {
|
||
|
const numImages = imagesToRemove.length;
|
||
|
let imageCounter = 0;
|
||
|
vscode.window.setStatusBarMessage("Docker: Removing Image(s)...", new Promise((resolve, reject) => {
|
||
|
imagesToRemove.forEach((img) => {
|
||
|
// tslint:disable-next-line:no-function-expression no-any // Grandfathered in
|
||
|
docker_endpoint_1.docker.getImage(img.Id).remove({ force: true }, function (err, _data) {
|
||
|
imageCounter++;
|
||
|
if (err) {
|
||
|
// TODO: use parseError, proper error handling
|
||
|
vscode.window.showErrorMessage(err.message);
|
||
|
reject();
|
||
|
}
|
||
|
if (imageCounter === numImages) {
|
||
|
resolve();
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
}));
|
||
|
}
|
||
|
if (telemetry_1.reporter) {
|
||
|
/* __GDPR__
|
||
|
"command" : {
|
||
|
"command" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||
|
}
|
||
|
*/
|
||
|
telemetry_1.reporter.sendTelemetryEvent('command', {
|
||
|
command: teleCmdId
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
exports.removeImage = removeImage;
|
||
|
//# sourceMappingURL=remove-image.js.map
|