Skip to content

Commit 13356e2

Browse files
author
Benjamin Pasero
committed
sandbox - lift configuration export helper to electron-sandbox
1 parent a167a4a commit 13356e2

4 files changed

Lines changed: 22 additions & 15 deletions

File tree

src/vs/workbench/contrib/configExporter/electron-browser/configurationExportHelper.contribution.ts renamed to src/vs/workbench/contrib/configExporter/electron-sandbox/configurationExportHelper.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
99
import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
1010
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
1111
import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService';
12-
import { DefaultConfigurationExportHelper } from 'vs/workbench/contrib/configExporter/electron-browser/configurationExportHelper';
12+
import { DefaultConfigurationExportHelper } from 'vs/workbench/contrib/configExporter/electron-sandbox/configurationExportHelper';
1313

1414
export class ExtensionPoints implements IWorkbenchContribution {
1515

src/vs/workbench/contrib/configExporter/electron-browser/configurationExportHelper.ts renamed to src/vs/workbench/contrib/configExporter/electron-sandbox/configurationExportHelper.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { writeFile } from 'vs/base/node/pfs';
76
import product from 'vs/platform/product/common/product';
87
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
98
import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService';
109
import { Registry } from 'vs/platform/registry/common/platform';
1110
import { IConfigurationNode, IConfigurationRegistry, Extensions, IConfigurationPropertySchema } from 'vs/platform/configuration/common/configurationRegistry';
1211
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
1312
import { ICommandService } from 'vs/platform/commands/common/commands';
13+
import { IFileService } from 'vs/platform/files/common/files';
14+
import { VSBuffer } from 'vs/base/common/buffer';
15+
import { URI } from 'vs/base/common/uri';
1416

1517
interface IExportedConfigurationNode {
1618
name: string;
@@ -33,24 +35,29 @@ export class DefaultConfigurationExportHelper {
3335
constructor(
3436
@IWorkbenchEnvironmentService environmentService: INativeWorkbenchEnvironmentService,
3537
@IExtensionService private readonly extensionService: IExtensionService,
36-
@ICommandService private readonly commandService: ICommandService) {
37-
if (environmentService.args['export-default-configuration']) {
38-
this.writeConfigModelAndQuit(environmentService.args['export-default-configuration']);
38+
@ICommandService private readonly commandService: ICommandService,
39+
@IFileService private readonly fileService: IFileService
40+
) {
41+
const exportDefaultConfigurationPath = environmentService.args['export-default-configuration'];
42+
if (exportDefaultConfigurationPath) {
43+
this.writeConfigModelAndQuit(URI.file(exportDefaultConfigurationPath));
3944
}
4045
}
4146

42-
private writeConfigModelAndQuit(targetPath: string): Promise<void> {
43-
return Promise.resolve(this.extensionService.whenInstalledExtensionsRegistered())
44-
.then(() => this.writeConfigModel(targetPath))
45-
.finally(() => this.commandService.executeCommand('workbench.action.quit'))
46-
.then(() => { });
47+
private async writeConfigModelAndQuit(target: URI): Promise<void> {
48+
try {
49+
await this.extensionService.whenInstalledExtensionsRegistered();
50+
await this.writeConfigModel(target);
51+
} finally {
52+
this.commandService.executeCommand('workbench.action.quit');
53+
}
4754
}
4855

49-
private writeConfigModel(targetPath: string): Promise<void> {
56+
private async writeConfigModel(target: URI): Promise<void> {
5057
const config = this.getConfigModel();
5158

5259
const resultString = JSON.stringify(config, undefined, ' ');
53-
return writeFile(targetPath, resultString);
60+
await this.fileService.writeFile(target, VSBuffer.fromString(resultString));
5461
}
5562

5663
private getConfigModel(): IConfigurationExport {

src/vs/workbench/workbench.desktop.main.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,4 @@ import 'vs/workbench/contrib/tasks/electron-browser/taskService';
117117
// User Data Sync
118118
import 'vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution';
119119

120-
// Configuration Exporter
121-
import 'vs/workbench/contrib/configExporter/electron-browser/configurationExportHelper.contribution';
122-
123120
//#endregion

src/vs/workbench/workbench.sandbox.main.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,7 @@ import 'vs/workbench/contrib/issue/electron-sandbox/issue.contribution';
7777
// Remote
7878
import 'vs/workbench/contrib/remote/electron-sandbox/remote.contribution';
7979

80+
// Configuration Exporter
81+
import 'vs/workbench/contrib/configExporter/electron-sandbox/configurationExportHelper.contribution';
82+
8083
//#endregion

0 commit comments

Comments
 (0)