Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 99317fc

Browse files
Merge pull request #3309 from code-asher/create-dirs
2 parents e7ce4f8 + 51d294e commit 99317fc

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

‎lib/vscode/src/vs/platform/extensionManagement/node/extensionsScanner.ts‎

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { isWindows } from 'vs/base/common/platform';
2424
import { flatten } from 'vs/base/common/arrays';
2525
import { IStringDictionary } from 'vs/base/common/collections';
2626
import { FileAccess } from 'vs/base/common/network';
27-
import { FileOperationError,FileOperationResult,IFileService } from 'vs/platform/files/common/files';
27+
import { IFileService } from 'vs/platform/files/common/files';
2828
import { basename } from 'vs/base/common/resources';
2929
import { generateUuid } from 'vs/base/common/uuid';
3030
import { getErrorMessage } from 'vs/base/common/errors';
@@ -274,22 +274,11 @@ export class ExtensionsScanner extends Disposable {
274274
return [...systemExtensions, ...devSystemExtensions];
275275
}
276276

277+
277278
private async scanExtensionsInDir(dir: string, type: ExtensionType): Promise<ILocalExtension[]> {
278279
const limiter = new Limiter<any>(10);
279-
/*
280-
* NOTE@coder: use fileService.resolve() like upstream does,
281-
* but simply ignore directories that do not exist. (upstream does not)
282-
*
283-
* Used to (<1.54) use pfs.readdir.
284-
*/
285-
const stat = await this.fileService.resolve(URI.file(dir))
286-
.catch((error) => {
287-
if (!(error instanceof FileOperationError && error.fileOperationResult === FileOperationResult.FILE_NOT_FOUND)) {
288-
throw error;
289-
}
290-
return undefined;
291-
});
292-
if (stat && stat.children) {
280+
const stat = await this.fileService.resolve(URI.file(dir));
281+
if (stat.children) {
293282
const extensions = await Promise.all<ILocalExtension>(stat.children.filter(c => c.isDirectory)
294283
.map(c => limiter.queue(async () => {
295284
if (type === ExtensionType.User && basename(c.resource).indexOf('.') === 0) { // Do not consider user extension folder starting with `.`

‎lib/vscode/src/vs/server/node/server.ts‎

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import *as fs from 'fs';
1+
import {promisesas fs} from 'fs';
22
import * as net from 'net';
33
import { hostname, release } from 'os';
44
import * as path from 'path';
@@ -213,8 +213,18 @@ export class Vscode {
213213
private async initializeServices(args: NativeParsedArgs): Promise<void> {
214214
const productService = { _serviceBrand: undefined, ...product };
215215
const environmentService = new NativeEnvironmentService(args, productService);
216-
// https://github.com/cdr/code-server/issues/1693
217-
fs.mkdirSync(environmentService.globalStorageHome.fsPath, { recursive: true });
216+
217+
await Promise.all([
218+
environmentService.extensionsPath,
219+
environmentService.logsPath,
220+
environmentService.globalStorageHome.fsPath,
221+
environmentService.workspaceStorageHome.fsPath,
222+
...environmentService.extraExtensionPaths,
223+
...environmentService.extraBuiltinExtensionPaths,
224+
].map((p) => fs.mkdir(p, { recursive: true }).catch((error) => {
225+
logger.warn(error.message || error);
226+
})));
227+
218228
const logService = new MultiplexLogService([
219229
new ConsoleLogger(getLogLevel(environmentService)),
220230
new SpdLogLogger(RemoteExtensionLogFileName, path.join(environmentService.logsPath, `${RemoteExtensionLogFileName}.log`), false, getLogLevel(environmentService))

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /