Use progress notification for azdata install/updates (#13355)

This commit is contained in:
Charles Gagnon
2020-11-11 15:14:02 -08:00
committed by GitHub
parent d64062dfe0
commit b17ce7a531

View File

@@ -239,52 +239,60 @@ export async function findAzdata(): Promise<IAzdataTool> {
* runs the commands to install azdata, downloading the installation package if needed * runs the commands to install azdata, downloading the installation package if needed
*/ */
export async function installAzdata(): Promise<void> { export async function installAzdata(): Promise<void> {
const statusDisposable = vscode.window.setStatusBarMessage(loc.installingAzdata);
Logger.show(); Logger.show();
Logger.log(loc.installingAzdata); Logger.log(loc.installingAzdata);
try { await vscode.window.withProgress(
switch (process.platform) { {
case 'win32': location: vscode.ProgressLocation.Notification,
await downloadAndInstallAzdataWin32(); title: loc.installingAzdata,
break; cancellable: false
case 'darwin': },
await installAzdataDarwin(); async (_progress, _token): Promise<void> => {
break; switch (process.platform) {
case 'linux': case 'win32':
await installAzdataLinux(); await downloadAndInstallAzdataWin32();
break; break;
default: case 'darwin':
throw new Error(loc.platformUnsupported(process.platform)); await installAzdataDarwin();
break;
case 'linux':
await installAzdataLinux();
break;
default:
throw new Error(loc.platformUnsupported(process.platform));
}
} }
} finally { );
statusDisposable.dispose();
}
} }
/** /**
* Updates the azdata using os appropriate method * Updates the azdata using os appropriate method
*/ */
export async function updateAzdata(): Promise<void> { export async function updateAzdata(): Promise<void> {
const statusDisposable = vscode.window.setStatusBarMessage(loc.updatingAzdata);
Logger.show(); Logger.show();
Logger.log(loc.updatingAzdata); Logger.log(loc.updatingAzdata);
try { await vscode.window.withProgress(
switch (process.platform) { {
case 'win32': location: vscode.ProgressLocation.Notification,
await downloadAndInstallAzdataWin32(); title: loc.updatingAzdata,
break; cancellable: false
case 'darwin': },
await updateAzdataDarwin(); async (_progress, _token): Promise<void> => {
break; switch (process.platform) {
case 'linux': case 'win32':
await installAzdataLinux(); await downloadAndInstallAzdataWin32();
break; break;
default: case 'darwin':
throw new Error(loc.platformUnsupported(process.platform)); await updateAzdataDarwin();
break;
case 'linux':
await installAzdataLinux();
break;
default:
throw new Error(loc.platformUnsupported(process.platform));
}
} }
} finally { );
statusDisposable.dispose();
}
} }
/** /**