mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-09 17:52:34 -05:00
55 lines
2.9 KiB
TypeScript
55 lines
2.9 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { DeploymentProvider, instanceOfCommandDeploymentProvider, instanceOfDialogDeploymentProvider, instanceOfDownloadDeploymentProvider, instanceOfNotebookDeploymentProvider, instanceOfWebPageDeploymentProvider } from '../interfaces';
|
|
import { DeploymentInputDialog } from './deploymentInputDialog';
|
|
import { ResourceTypeModel } from './resourceTypeModel';
|
|
import * as azdata from 'azdata';
|
|
import * as vscode from 'vscode';
|
|
import * as nls from 'vscode-nls';
|
|
|
|
const localize = nls.loadMessageBundle();
|
|
|
|
|
|
export class PageLessDeploymentModel extends ResourceTypeModel {
|
|
|
|
initialize(): void {
|
|
this.wizard.setPages([]);
|
|
}
|
|
|
|
async onOk(): Promise<void> {
|
|
let provider: DeploymentProvider = this.wizard.provider;
|
|
if (instanceOfDialogDeploymentProvider(provider)) {
|
|
const dialog = new DeploymentInputDialog(this.wizard.notebookService, this.wizard.platformService, this.wizard.toolsService, provider.dialog);
|
|
dialog.open();
|
|
} else if (instanceOfNotebookDeploymentProvider(provider)) {
|
|
this.wizard.notebookService.openNotebook(provider.notebook);
|
|
} else if (instanceOfDownloadDeploymentProvider(provider)) {
|
|
const downloadUrl = provider.downloadUrl;
|
|
const taskName = localize('resourceDeployment.DownloadAndLaunchTaskName', "Download and launch installer, URL: {0}", downloadUrl);
|
|
azdata.tasks.startBackgroundOperation({
|
|
displayName: taskName,
|
|
description: taskName,
|
|
isCancelable: false,
|
|
operation: op => {
|
|
op.updateStatus(azdata.TaskStatus.InProgress, localize('resourceDeployment.DownloadingText', "Downloading from: {0}", downloadUrl));
|
|
this.wizard.resourceTypeService.download(downloadUrl).then(async (downloadedFile) => {
|
|
op.updateStatus(azdata.TaskStatus.InProgress, localize('resourceDeployment.DownloadCompleteText', "Successfully downloaded: {0}", downloadedFile));
|
|
op.updateStatus(azdata.TaskStatus.InProgress, localize('resourceDeployment.LaunchingProgramText', "Launching: {0}", downloadedFile));
|
|
await this.wizard.platformService.runCommand(downloadedFile, { sudo: true });
|
|
op.updateStatus(azdata.TaskStatus.Succeeded, localize('resourceDeployment.ProgramLaunchedText', "Successfully launched: {0}", downloadedFile));
|
|
}, (error) => {
|
|
op.updateStatus(azdata.TaskStatus.Failed, error);
|
|
});
|
|
}
|
|
});
|
|
} else if (instanceOfWebPageDeploymentProvider(provider)) {
|
|
vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(provider.webPageUrl));
|
|
} else if (instanceOfCommandDeploymentProvider(provider)) {
|
|
vscode.commands.executeCommand(provider.command);
|
|
}
|
|
}
|
|
}
|