From e3c347e14861376b13c7f35e989ce11f1ece2475 Mon Sep 17 00:00:00 2001 From: Kim Santiago <31145923+kisantia@users.noreply.github.com> Date: Wed, 25 Sep 2019 15:00:56 -0700 Subject: [PATCH] Fixing folder path in dacpac and schema compare extensions (#7352) * fixing folder path in dacpac and schema compare extensions * created method * import os --- extensions/dacpac/src/wizard/api/dacFxConfigPage.ts | 2 +- .../schema-compare/src/dialogs/schemaCompareDialog.ts | 4 ++-- extensions/schema-compare/src/schemaCompareMainWindow.ts | 6 +++--- extensions/schema-compare/src/utils.ts | 8 ++++++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/extensions/dacpac/src/wizard/api/dacFxConfigPage.ts b/extensions/dacpac/src/wizard/api/dacFxConfigPage.ts index 793a3c44a7..638e0bd1bf 100644 --- a/extensions/dacpac/src/wizard/api/dacFxConfigPage.ts +++ b/extensions/dacpac/src/wizard/api/dacFxConfigPage.ts @@ -182,7 +182,7 @@ export abstract class DacFxConfigPage extends BasePage { if (this.fileTextBox.value && path.dirname(this.fileTextBox.value)) { return path.dirname(this.fileTextBox.value); } else { // otherwise use the folder open in the Explorer or the home directory - return vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].name : os.homedir(); + return vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : os.homedir(); } } diff --git a/extensions/schema-compare/src/dialogs/schemaCompareDialog.ts b/extensions/schema-compare/src/dialogs/schemaCompareDialog.ts index 16ac05ffa9..313d5c9c40 100644 --- a/extensions/schema-compare/src/dialogs/schemaCompareDialog.ts +++ b/extensions/schema-compare/src/dialogs/schemaCompareDialog.ts @@ -11,7 +11,7 @@ import * as os from 'os'; import { SchemaCompareMainWindow } from '../schemaCompareMainWindow'; import { promises as fs } from 'fs'; import { Telemetry } from '../telemetry'; -import { getEndpointName } from '../utils'; +import { getEndpointName, getRootPath } from '../utils'; import * as mssql from '../../../mssql'; const localize = nls.loadMessageBundle(); @@ -314,7 +314,7 @@ export class SchemaCompareDialog { currentButton.onDidClick(async (click) => { // file browser should open where the current dacpac is or the appropriate default folder - let rootPath = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].name : os.homedir(); + let rootPath = getRootPath(); let defaultUri = endpoint && endpoint.packageFilePath && await exists(endpoint.packageFilePath) ? endpoint.packageFilePath : rootPath; let fileUris = await vscode.window.showOpenDialog( diff --git a/extensions/schema-compare/src/schemaCompareMainWindow.ts b/extensions/schema-compare/src/schemaCompareMainWindow.ts index 6d7424ecf7..62a19808d0 100644 --- a/extensions/schema-compare/src/schemaCompareMainWindow.ts +++ b/extensions/schema-compare/src/schemaCompareMainWindow.ts @@ -11,7 +11,7 @@ import * as path from 'path'; import * as mssql from '../../mssql'; import { SchemaCompareOptionsDialog } from './dialogs/schemaCompareOptionsDialog'; import { Telemetry } from './telemetry'; -import { getTelemetryErrorType, getEndpointName, verifyConnectionAndGetOwnerUri } from './utils'; +import { getTelemetryErrorType, getEndpointName, verifyConnectionAndGetOwnerUri, getRootPath } from './utils'; import { SchemaCompareDialog } from './dialogs/schemaCompareDialog'; import { isNullOrUndefined } from 'util'; const localize = nls.loadMessageBundle(); @@ -845,7 +845,7 @@ export class SchemaCompareMainWindow { this.openScmpButton.onDidClick(async (click) => { Telemetry.sendTelemetryEvent('SchemaCompareOpenScmpStarted'); - const rootPath = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].name : os.homedir(); + const rootPath = getRootPath(); let fileUris = await vscode.window.showOpenDialog( { canSelectFiles: true, @@ -942,7 +942,7 @@ export class SchemaCompareMainWindow { }).component(); this.saveScmpButton.onDidClick(async (click) => { - const rootPath = vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].name : os.homedir(); + const rootPath = getRootPath(); const filePath = await vscode.window.showSaveDialog( { defaultUri: vscode.Uri.file(rootPath), diff --git a/extensions/schema-compare/src/utils.ts b/extensions/schema-compare/src/utils.ts index cb176e6a0a..9a33459356 100644 --- a/extensions/schema-compare/src/utils.ts +++ b/extensions/schema-compare/src/utils.ts @@ -6,6 +6,7 @@ import * as azdata from 'azdata'; import * as vscode from 'vscode'; import * as mssql from '../../mssql'; +import * as os from 'os'; export interface IPackageInfo { name: string; @@ -85,3 +86,10 @@ export async function verifyConnectionAndGetOwnerUri(endpoint: mssql.SchemaCompa } return undefined; } + +/** + * Returns the folder open in Explorer if there is one, otherwise returns the home directory + */ +export function getRootPath(): string { + return vscode.workspace.workspaceFolders ? vscode.workspace.workspaceFolders[0].uri.fsPath : os.homedir(); +}