mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-13 22:12:07 +01:00
debt - ensure file scheme when using .fsPath (#191960)
This commit is contained in:
@@ -121,7 +121,7 @@ class CliMain extends Disposable {
|
||||
|
||||
// Init folders
|
||||
await Promise.all([
|
||||
environmentService.appSettingsHome.fsPath,
|
||||
environmentService.appSettingsHome.with({ scheme: Schemas.file }).fsPath,
|
||||
environmentService.extensionsPath
|
||||
].map(path => path ? Promises.mkdir(path, { recursive: true }) : undefined));
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
import { RunOnceScheduler } from 'vs/base/common/async';
|
||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { basename, dirname, joinPath } from 'vs/base/common/resources';
|
||||
import { Schemas } from 'vs/base/common/network';
|
||||
import { join } from 'vs/base/common/path';
|
||||
import { basename, dirname } from 'vs/base/common/resources';
|
||||
import { Promises } from 'vs/base/node/pfs';
|
||||
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
@@ -30,9 +32,8 @@ export class LogsDataCleaner extends Disposable {
|
||||
|
||||
try {
|
||||
const currentLog = basename(this.environmentService.logsHome);
|
||||
const logsRoot = dirname(this.environmentService.logsHome);
|
||||
|
||||
const logFiles = await Promises.readdir(logsRoot.fsPath);
|
||||
const logsRoot = dirname(this.environmentService.logsHome.with({ scheme: Schemas.file })).fsPath;
|
||||
const logFiles = await Promises.readdir(logsRoot);
|
||||
|
||||
const allSessions = logFiles.filter(logFile => /^\d{8}T\d{6}$/.test(logFile));
|
||||
const oldSessions = allSessions.sort().filter(session => session !== currentLog);
|
||||
@@ -41,7 +42,7 @@ export class LogsDataCleaner extends Disposable {
|
||||
if (sessionsToDelete.length > 0) {
|
||||
this.logService.trace(`[logs cleanup]: Removing log folders '${sessionsToDelete.join(', ')}'`);
|
||||
|
||||
await Promise.all(sessionsToDelete.map(sessionToDelete => Promises.rm(joinPath(logsRoot, sessionToDelete).fsPath)));
|
||||
await Promise.all(sessionsToDelete.map(sessionToDelete => Promises.rm(join(logsRoot, sessionToDelete))));
|
||||
}
|
||||
} catch (error) {
|
||||
onUnexpectedError(error);
|
||||
|
||||
@@ -15,6 +15,7 @@ import { EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE } from 'vs/platform/worksp
|
||||
import { NON_EMPTY_WORKSPACE_ID_LENGTH } from 'vs/platform/workspaces/node/workspaces';
|
||||
import { INativeHostService } from 'vs/platform/native/common/native';
|
||||
import { IMainProcessService } from 'vs/platform/ipc/common/mainProcessService';
|
||||
import { Schemas } from 'vs/base/common/network';
|
||||
|
||||
export class UnusedWorkspaceStorageDataCleaner extends Disposable {
|
||||
|
||||
@@ -36,11 +37,12 @@ export class UnusedWorkspaceStorageDataCleaner extends Disposable {
|
||||
this.logService.trace('[storage cleanup]: Starting to clean up workspace storage folders for unused empty workspaces.');
|
||||
|
||||
try {
|
||||
const workspaceStorageFolders = await Promises.readdir(this.environmentService.workspaceStorageHome.fsPath);
|
||||
const workspaceStorageHome = this.environmentService.workspaceStorageHome.with({ scheme: Schemas.file }).fsPath;
|
||||
const workspaceStorageFolders = await Promises.readdir(workspaceStorageHome);
|
||||
const storageClient = new StorageClient(this.mainProcessService.getChannel('storage'));
|
||||
|
||||
await Promise.all(workspaceStorageFolders.map(async workspaceStorageFolder => {
|
||||
const workspaceStoragePath = join(this.environmentService.workspaceStorageHome.fsPath, workspaceStorageFolder);
|
||||
const workspaceStoragePath = join(workspaceStorageHome, workspaceStorageFolder);
|
||||
|
||||
if (workspaceStorageFolder.length === NON_EMPTY_WORKSPACE_ID_LENGTH) {
|
||||
return; // keep workspace storage for folders/workspaces that can be accessed still
|
||||
|
||||
Reference in New Issue
Block a user