call(_, command: string, arg?: any): Thenable<any> { switch (command) { case 'setLevel': this.service.setLevel(arg); } throw new Error(`Call not found: ${command}`); }
call(_: unknown, command: string, arg?: any): Promise<any> { switch (command) { case 'setLevel': this.service.setLevel(arg); return Promise.resolve(); } throw new Error(`Call not found: ${command}`); }
zipfile.on('entry', (entry: Entry) => { logService.debug(targetPath, 'Found', entry.fileName); if (isCanceled) { return; } if (!options.sourcePathRegex.test(entry.fileName)) { readNextEntry(); return; } const fileName = entry.fileName.replace(options.sourcePathRegex, ''); // directory file names end with '/' if (/\/$/.test(fileName)) { const targetFileName = path.join(targetPath, fileName); last = mkdirp(targetFileName).then(() => readNextEntry()); return; } const stream = ninvoke(zipfile, zipfile.openReadStream, entry); const mode = modeFromEntry(entry); last = throttler.queue(() => stream.then(stream => extractEntry(stream, fileName, mode, targetPath, options).then(() => readNextEntry()))); });
export function getShellEnvironment(logService: ILogService): Promise<typeof process.env> { if (_shellEnv === undefined) { if (isWindows) { logService.trace('getShellEnvironment: runing on windows, skipping'); _shellEnv = Promise.resolve({}); } else if (process.env['VSCODE_CLI'] === '1') { logService.trace('getShellEnvironment: runing on CLI, skipping'); _shellEnv = Promise.resolve({}); } else { logService.trace('getShellEnvironment: running on Unix'); _shellEnv = getUnixShellEnvironment(logService); } } return _shellEnv; }
child.on('close', code => { if (code !== 0) { return reject(new Error('Failed to get environment')); } const raw = Buffer.concat(buffers).toString('utf8'); logService.trace('getUnixShellEnvironment#raw', raw); const match = regex.exec(raw); const rawStripped = match ? match[1] : '{}'; try { const env = JSON.parse(rawStripped); if (runAsNode) { env['ELECTRON_RUN_AS_NODE'] = runAsNode; } else { delete env['ELECTRON_RUN_AS_NODE']; } if (noAttach) { env['ELECTRON_NO_ATTACH_CONSOLE'] = noAttach; } else { delete env['ELECTRON_NO_ATTACH_CONSOLE']; } // https://github.com/Microsoft/vscode/issues/22593#issuecomment-336050758 delete env['XDG_RUNTIME_DIR']; logService.trace('getUnixShellEnvironment#result', env); resolve(env); } catch (err) { logService.error('getUnixShellEnvironment#error', err); reject(err); } });
private async createStorageService(payload: IWorkspaceInitializationPayload, environmentService: IWorkbenchEnvironmentService, logService: ILogService, mainProcessService: IMainProcessService): Promise<StorageService> { const globalStorageDatabase = new GlobalStorageDatabaseChannelClient(mainProcessService.getChannel('storage')); const storageService = new StorageService(globalStorageDatabase, logService, environmentService); try { await storageService.initialize(payload); return storageService; } catch (error) { onUnexpectedError(error); logService.error(error); return storageService; } }
private async createWorkspaceService(payload: IWorkspaceInitializationPayload, environmentService: IWorkbenchEnvironmentService, fileService: FileService, remoteAgentService: IRemoteAgentService, logService: ILogService): Promise<WorkspaceService> { const configurationFileService = new ConfigurationFileService(); configurationFileService.fileService = fileService; const workspaceService = new WorkspaceService({ userSettingsResource: environmentService.settingsResource, remoteAuthority: this.configuration.remoteAuthority, configurationCache: new ConfigurationCache(environmentService) }, configurationFileService, remoteAgentService); try { await workspaceService.initialize(payload); return workspaceService; } catch (error) { onUnexpectedError(error); logService.error(error); return workspaceService; } }
this._register(master.onDidChangeLogLevel(level => logService.setLevel(level)));
once(token.onCancellationRequested)(() => { logService.debug(targetPath, 'Cancelled.'); last.cancel(); zipfile.close(); });
return storageService.initialize(payload).then(() => storageService, error => { onUnexpectedError(error); logService.error(error); return storageService; });