add --install-source to cli process

This commit is contained in:
Joao Moreno
2017-09-21 11:08:54 +02:00
parent 5b3b44613e
commit 14699ba54e
11 changed files with 49 additions and 16 deletions

View File

@@ -7,6 +7,7 @@ import { localize } from 'vs/nls';
import product from 'vs/platform/node/product';
import pkg from 'vs/platform/node/package';
import * as path from 'path';
import * as fs from 'fs';
import { TPromise } from 'vs/base/common/winjs.base';
import { sequence } from 'vs/base/common/async';
@@ -16,7 +17,7 @@ import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService';
import { IEnvironmentService, ParsedArgs } from 'vs/platform/environment/common/environment';
import { EnvironmentService } from 'vs/platform/environment/node/environmentService';
import { EnvironmentService, getInstallSourcePath } from 'vs/platform/environment/node/environmentService';
import { IExtensionManagementService, IExtensionGalleryService, IExtensionManifest, IGalleryExtension, LocalExtensionType } from 'vs/platform/extensionManagement/common/extensionManagement';
import { ExtensionManagementService } from 'vs/platform/extensionManagement/node/extensionManagementService';
import { ExtensionGalleryService } from 'vs/platform/extensionManagement/node/extensionGalleryService';
@@ -50,6 +51,7 @@ type Task = { (): TPromise<void> };
class Main {
constructor(
@IEnvironmentService private environmentService: IEnvironmentService,
@IExtensionManagementService private extensionManagementService: IExtensionManagementService,
@IExtensionGalleryService private extensionGalleryService: IExtensionGalleryService
) { }
@@ -57,7 +59,9 @@ class Main {
run(argv: ParsedArgs): TPromise<any> {
// TODO@joao - make this contributable
if (argv['list-extensions']) {
if (argv['install-source']) {
return this.setInstallSource(argv['install-source']);
} else if (argv['list-extensions']) {
return this.listExtensions(argv['show-versions']);
} else if (argv['install-extension']) {
const arg = argv['install-extension'];
@@ -71,6 +75,13 @@ class Main {
return undefined;
}
private setInstallSource(installSource: string): TPromise<any> {
return new TPromise<void>((c, e) => {
const path = getInstallSourcePath(this.environmentService.userDataPath);
fs.writeFile(path, installSource.slice(0, 30), 'utf8', err => err ? e(err) : c(null));
});
}
private listExtensions(showVersions: boolean): TPromise<any> {
return this.extensionManagementService.getInstalled(LocalExtensionType.User).then(extensions => {
extensions.forEach(e => console.log(getId(e.manifest, showVersions)));
@@ -161,7 +172,7 @@ export function main(argv: ParsedArgs): TPromise<void> {
const envService = accessor.get(IEnvironmentService);
return TPromise.join([envService.appSettingsHome, envService.extensionsPath].map(p => mkdirp(p))).then(() => {
const { appRoot, extensionsPath, extensionDevelopmentPath, isBuilt } = envService;
const { appRoot, extensionsPath, extensionDevelopmentPath, isBuilt, installSource } = envService;
const services = new ServiceCollection();
services.set(IConfigurationService, new SyncDescriptor(ConfigurationService));
@@ -183,7 +194,7 @@ export function main(argv: ParsedArgs): TPromise<void> {
const config: ITelemetryServiceConfig = {
appender: combinedAppender(...appenders),
commonProperties: resolveCommonProperties(product.commit, pkg.version),
commonProperties: resolveCommonProperties(product.commit, pkg.version, installSource),
piiPaths: [appRoot, extensionsPath]
};