From 088d4fb45acc2efe74560aaff4e469e022cd3287 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 17 Aug 2016 12:53:51 +0200 Subject: [PATCH] paths.getDefaultUserDataPath --- src/main.js | 4 +--- src/paths.js | 13 ++++--------- src/vs/base/node/paths.ts | 4 ++-- .../platform/environment/node/environmentService.ts | 13 ++++++------- 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/main.js b/src/main.js index 76f3e939b62..fa36b95f26c 100644 --- a/src/main.js +++ b/src/main.js @@ -11,7 +11,6 @@ var fs = require('fs'); var path = require('path'); var minimist = require('minimist'); var paths = require('./paths'); -var pkg = require('../package.json'); function stripComments(content) { var regexp = /("(?:[^\\\"]*(?:\\.)?)*")|('(?:[^\\\']*(?:\\.)?)*')|(\/\*(?:\r?\n|.)*?\*\/)|(\/{2,}.*?(?:(?:\r?\n)|$))/g; @@ -129,8 +128,7 @@ try { // Set userData path before app 'ready' event var argv = minimist(process.argv, { string: ['user-data-dir'] }); -var userDataDir = argv['user-data-dir']; -var userData = paths.getUserDataPath(process.platform, pkg.name, userDataDir); +var userData = argv['user-data-dir'] || paths.getDefaultUserDataPath(process.platform); app.setPath('userData', userData); // Mac: when someone drops a file to the not-yet running VSCode, the open-file event fires even before diff --git a/src/paths.js b/src/paths.js index 0aa408bdc33..8373cde04d5 100644 --- a/src/paths.js +++ b/src/paths.js @@ -5,6 +5,7 @@ var path = require('path'); var os = require('os'); +var pkg = require('../package.json'); function getAppDataPath(platform) { switch (platform) { @@ -15,15 +16,9 @@ function getAppDataPath(platform) { } } -function getUserDataPath(platform, appName, userDataDir) { - if (userDataDir) { - return userDataDir; - } +function getDefaultUserDataPath(platform) { - var appData = getAppDataPath(platform); - - return path.join(appData, appName); + return path.join(getAppDataPath(platform), pkg.name); } - exports.getAppDataPath = getAppDataPath; -exports.getUserDataPath = getUserDataPath; \ No newline at end of file +exports.getDefaultUserDataPath = getDefaultUserDataPath; \ No newline at end of file diff --git a/src/vs/base/node/paths.ts b/src/vs/base/node/paths.ts index fee645e9d54..dfdc28def8a 100644 --- a/src/vs/base/node/paths.ts +++ b/src/vs/base/node/paths.ts @@ -7,10 +7,10 @@ import uri from 'vs/base/common/uri'; interface IPaths { getAppDataPath(platform: string): string; - getUserDataPath(platform: string, appName: string, userDataDir: string): string; + getDefaultUserDataPath(platform: string): string; } const pathsPath = uri.parse(require.toUrl('paths')).fsPath; const paths = require.__$__nodeRequire(pathsPath); export const getAppDataPath = paths.getAppDataPath; -export const getUserDataPath = paths.getUserDataPath; +export const getDefaultUserDataPath = paths.getDefaultUserDataPath; \ No newline at end of file diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts index f5251020d63..04d07fa1ab0 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts @@ -6,7 +6,6 @@ import {IEnvironmentService} from 'vs/platform/environment/common/environment'; import * as paths from 'vs/base/node/paths'; import product from 'vs/platform/product'; -import pkg from 'vs/platform/package'; import * as os from 'os'; import * as path from 'path'; import {ParsedArgs} from 'vs/code/node/argv'; @@ -41,22 +40,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.parsedArgs.verbose; } + get verbose(): boolean { return this.args.verbose; } - get debugBrkFileWatcherPort(): number { return typeof this.parsedArgs.debugBrkFileWatcherPort === 'string' ? Number(this.parsedArgs.debugBrkFileWatcherPort) : void 0; } + get debugBrkFileWatcherPort(): number { return typeof this.args.debugBrkFileWatcherPort === 'string' ? Number(this.args.debugBrkFileWatcherPort) : void 0; } - constructor(private parsedArgs: ParsedArgs) { + constructor(private args: ParsedArgs) { this._appRoot = path.dirname(URI.parse(require.toUrl('')).fsPath); - this._userDataPath = paths.getUserDataPath(process.platform, pkg.name, parsedArgs['user-data-dir']); + this._userDataPath = args['user-data-dir'] || paths.getDefaultUserDataPath(process.platform); 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 = parsedArgs.extensionHomePath || path.join(this._userHome, 'extensions'); + this._extensionsPath = args.extensionHomePath || path.join(this._userHome, 'extensions'); this._extensionsPath = path.normalize(this._extensionsPath); - this._extensionDevelopmentPath = parsedArgs.extensionDevelopmentPath; + this._extensionDevelopmentPath = args.extensionDevelopmentPath; } } \ No newline at end of file