mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 09:59:47 -05:00
50 lines
1.8 KiB
TypeScript
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;
|
|
}
|