Files
azuredatastudio/src/sql/platform/common/pathUtilities.ts
Charles Gagnon 6c8e2bf8f3 Fix export results default save location (#18224)
* Fix export results default save location

* cleanup
2022-02-04 16:20:10 -08:00

50 lines
1.8 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 { normalize, join, dirname } from 'vs/base/common/path';
import { URI } from 'vs/base/common/uri';
import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace';
import { Schemas } from 'vs/base/common/network';
export function resolveCurrentDirectory(uri: string, rootPath?: string): string | undefined {
let sqlUri = URI.parse(uri);
let currentDirectory: string | undefined;
// use current directory of the sql file if sql file is saved
if (sqlUri.scheme === Schemas.file) {
currentDirectory = dirname(sqlUri.fsPath);
} else if (sqlUri.scheme === Schemas.untitled) {
// if sql file is unsaved/untitled but a workspace is open use workspace root
let root = rootPath;
if (root) {
currentDirectory = root;
}
} else {
currentDirectory = dirname(sqlUri.path);
}
return currentDirectory;
}
export function resolveFilePath(uri: string, filePath: string, rootPath?: string): string | undefined {
let currentDirectory = resolveCurrentDirectory(uri, rootPath);
if (currentDirectory) {
return normalize(join(currentDirectory, filePath));
}
return undefined;
}
export function getRootPath(contextService: IWorkspaceContextService): string | undefined {
let isWorkspace = contextService.getWorkbenchState() === WorkbenchState.WORKSPACE;
if (isWorkspace) {
let folder = contextService.getWorkspace().folders[0];
if (folder && folder.uri) {
return folder.uri.fsPath;
}
}
return undefined;
}