reduce ICommandLineArgs and let it extend ParsedArgs

This commit is contained in:
Benjamin Pasero 2016-08-17 12:24:11 +02:00
parent bd1af53f54
commit 8c049b9bf4
3 changed files with 29 additions and 45 deletions

View file

@ -20,32 +20,15 @@ import URI from 'vs/base/common/uri';
import * as types from 'vs/base/common/types'; import * as types from 'vs/base/common/types';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import product, { IProductConfiguration } from 'vs/platform/product'; import product, { IProductConfiguration } from 'vs/platform/product';
import { parseArgs } from 'vs/code/node/argv'; import { parseArgs, ParsedArgs } from 'vs/code/node/argv';
import pkg from 'vs/platform/package'; import pkg from 'vs/platform/package';
export interface IProcessEnvironment { export interface IProcessEnvironment {
[key: string]: string; [key: string]: string;
} }
export interface ICommandLineArguments { export interface ICommandLineArguments extends ParsedArgs {
verbose: boolean;
debugPluginHost: string;
debugBrkPluginHost: boolean;
debugBrkFileWatcherPort: string;
logExtensionHostCommunication: boolean;
'disable-extensions': boolean;
extensionHomePath: string;
extensionDevelopmentPath: string;
extensionTestsPath: string;
programStart: number;
pathArguments?: string[]; pathArguments?: string[];
performance?: boolean;
'new-window'?: boolean;
'reuse-window'?: boolean;
goto?: boolean;
diff?: boolean;
locale?: string;
wait?: boolean;
} }
export const IEnvService = createDecorator<IEnvService>('mainEnvironmentService'); export const IEnvService = createDecorator<IEnvService>('mainEnvironmentService');
@ -168,12 +151,13 @@ export class EnvService implements IEnvService {
const debugBrkFileWatcherPort = getNumericValue(argv.debugBrkFileWatcherPort, void 0); const debugBrkFileWatcherPort = getNumericValue(argv.debugBrkFileWatcherPort, void 0);
this._cliArgs = Object.freeze({ this._cliArgs = Object.freeze({
_: [],
pathArguments: pathArguments, pathArguments: pathArguments,
programStart: types.isNumber(timestamp) ? timestamp : 0, timestamp: types.isNumber(timestamp) ? String(timestamp) : '0',
performance: argv.performance, performance: argv.performance,
verbose: argv.verbose, verbose: argv.verbose,
debugPluginHost, debugPluginHost,
debugBrkPluginHost: !!debugBrkExtensionHostPort, debugBrkPluginHost: String(!!debugBrkExtensionHostPort),
logExtensionHostCommunication: argv.logExtensionHostCommunication, logExtensionHostCommunication: argv.logExtensionHostCommunication,
debugBrkFileWatcherPort: debugBrkFileWatcherPort ? String(debugBrkFileWatcherPort) : void 0, debugBrkFileWatcherPort: debugBrkFileWatcherPort ? String(debugBrkFileWatcherPort) : void 0,
'new-window': argv['new-window'], 'new-window': argv['new-window'],

View file

@ -135,7 +135,7 @@ function main(accessor: ServicesAccessor, mainIpcServer: Server, userEnv: IProce
} }
// Set programStart in the global scope // Set programStart in the global scope
global.programStart = envService.cliArgs.programStart; global.programStart = envService.cliArgs.timestamp;
function dispose() { function dispose() {
if (mainIpcServer) { if (mainIpcServer) {

View file

@ -8,29 +8,29 @@ import * as minimist from 'minimist';
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
export interface ParsedArgs extends minimist.ParsedArgs { export interface ParsedArgs extends minimist.ParsedArgs {
help: boolean; help?: boolean;
version: boolean; version?: boolean;
wait: boolean; wait?: boolean;
diff: boolean; diff?: boolean;
goto: boolean; goto?: boolean;
'new-window': boolean; 'new-window'?: boolean;
'reuse-window': boolean; 'reuse-window'?: boolean;
locale: string; locale?: string;
'user-data-dir': string; 'user-data-dir'?: string;
performance: boolean; performance?: boolean;
verbose: boolean; verbose?: boolean;
logExtensionHostCommunication: boolean; logExtensionHostCommunication?: boolean;
debugBrkFileWatcherPort: string; debugBrkFileWatcherPort?: string;
'disable-extensions': boolean; 'disable-extensions'?: boolean;
extensionHomePath: string; extensionHomePath?: string;
extensionDevelopmentPath: string; extensionDevelopmentPath?: string;
extensionTestsPath: string; extensionTestsPath?: string;
timestamp: string; timestamp?: string;
debugBrkPluginHost: string; debugBrkPluginHost?: string;
debugPluginHost: string; debugPluginHost?: string;
'list-extensions': boolean; 'list-extensions'?: boolean;
'install-extension': string | string[]; 'install-extension'?: string | string[];
'uninstall-extension': string | string[]; 'uninstall-extension'?: string | string[];
} }
const options: minimist.Opts = { const options: minimist.Opts = {