提交 549c1772 编写于 作者: B Benjamin Pasero

no more process.argv dependency in environmentService

上级 be2034c5
......@@ -9,6 +9,7 @@ global.vscodeStart = Date.now();
var app = require('electron').app;
var fs = require('fs');
var path = require('path');
var minimist = require('minimist');
var paths = require('./paths');
var pkg = require('../package.json');
......@@ -127,7 +128,9 @@ try {
}
// Set userData path before app 'ready' event
var userData = paths.getUserDataPath(process.platform, pkg.name, process.argv);
var argv = minimist(process.argv, { string: ['user-data-dir'] });
var userDataDir = argv['user-data-dir'];
var userData = paths.getUserDataPath(process.platform, pkg.name, userDataDir);
app.setPath('userData', userData);
// Mac: when someone drops a file to the not-yet running VSCode, the open-file event fires even before
......
......@@ -3,7 +3,6 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
var minimist = require('minimist');
var path = require('path');
var os = require('os');
......@@ -16,15 +15,13 @@ function getAppDataPath(platform) {
}
}
function getUserDataPath(platform, appName, args) {
var argv = minimist(args, { string: ['user-data-dir'] });
var userDataDir = argv['user-data-dir'];
var appData = getAppDataPath(platform);
function getUserDataPath(platform, appName, userDataDir) {
if (userDataDir) {
return userDataDir;
}
var appData = getAppDataPath(platform);
return path.join(appData, appName);
}
......
......@@ -7,7 +7,7 @@ import uri from 'vs/base/common/uri';
interface IPaths {
getAppDataPath(platform: string): string;
getUserDataPath(platform: string, appName: string, args: string[]): string;
getUserDataPath(platform: string, appName: string, userDataDir: string): string;
}
const pathsPath = uri.parse(require.toUrl('paths')).fsPath;
......
......@@ -41,22 +41,22 @@ export class EnvironmentService implements IEnvironmentService {
get extensionDevelopmentPath(): string { return this._extensionDevelopmentPath; }
get isBuilt(): boolean { return !process.env['VSCODE_DEV']; }
get verbose(): boolean { return this.argv.verbose; }
get verbose(): boolean { return this.parsedArgs.verbose; }
get debugBrkFileWatcherPort(): number { return typeof this.argv.debugBrkFileWatcherPort === 'string' ? Number(this.argv.debugBrkFileWatcherPort) : void 0; }
get debugBrkFileWatcherPort(): number { return typeof this.parsedArgs.debugBrkFileWatcherPort === 'string' ? Number(this.parsedArgs.debugBrkFileWatcherPort) : void 0; }
constructor(private argv: ParsedArgs) {
constructor(private parsedArgs: ParsedArgs) {
this._appRoot = path.dirname(URI.parse(require.toUrl('')).fsPath);
this._userDataPath = paths.getUserDataPath(process.platform, pkg.name, process.argv);
this._userDataPath = paths.getUserDataPath(process.platform, pkg.name, parsedArgs['user-data-dir']);
this._appSettingsHome = path.join(this.userDataPath, 'User');
this._appSettingsPath = path.join(this.appSettingsHome, 'settings.json');
this._appKeybindingsPath = path.join(this.appSettingsHome, 'keybindings.json');
this._userHome = path.join(os.homedir(), product.dataFolderName);
this._extensionsPath = argv.extensionHomePath || path.join(this._userHome, 'extensions');
this._extensionsPath = parsedArgs.extensionHomePath || path.join(this._userHome, 'extensions');
this._extensionsPath = path.normalize(this._extensionsPath);
this._extensionDevelopmentPath = argv.extensionDevelopmentPath;
this._extensionDevelopmentPath = parsedArgs.extensionDevelopmentPath;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册