提交 9a9ce669 编写于 作者: J Joao Moreno

compute logs path earlier in the game

fixes #56651
上级 4754feaf
......@@ -9,6 +9,7 @@ perf.mark('main:started');
Error.stackTraceLimit = 100; // increase number of stack frames (from 10, https://github.com/v8/v8/wiki/Stack-Trace-API)
//#region Portable mode
const fs = require('fs');
const path = require('path');
const product = require('../product.json');
......@@ -51,6 +52,7 @@ if (isPortable) {
if (isTempPortable) {
process.env[process.platform === 'win32' ? 'TEMP' : 'TMPDIR'] = portableTempPath;
}
//#endregion
//#region Add support for using node_modules.asar
(function () {
......@@ -96,6 +98,7 @@ const args = minimist(process.argv, {
]
});
//#region User data path
function getUserDataPath() {
if (isPortable) {
return path.join(portableDataPath, 'user-data');
......@@ -108,6 +111,34 @@ const userDataPath = getUserDataPath();
// Set userData path before app 'ready' event and call to process.chdir
app.setPath('userData', userDataPath);
//#endregion
//#region Logs
function pad(n, l, char = '0') {
let str = '' + n;
let r = [str];
for (let i = str.length; i < l; i++) {
r.push(char);
}
return r.reverse().join('');
}
function toLocalISOString(date) {
return date.getFullYear() +
'-' + pad(date.getMonth() + 1, 2) +
'-' + pad(date.getDate(), 2) +
'T' + pad(date.getHours(), 2) +
':' + pad(date.getMinutes(), 2) +
':' + pad(date.getSeconds(), 2) +
'.' + (date.getMilliseconds() / 1000).toFixed(3).slice(2, 5) +
'Z';
}
const logsKey = toLocalISOString(new Date()).replace(/-|:|\.\d+Z$/g, '');
process.env['VSCODE_LOGS'] = path.join(userDataPath, 'logs', logsKey);
//#endregion
//#region NLS
function stripComments(content) {
......
......@@ -11,9 +11,9 @@ import * as path from 'path';
import { memoize } from 'vs/base/common/decorators';
import pkg from 'vs/platform/node/package';
import product from 'vs/platform/node/product';
import { toLocalISOString } from 'vs/base/common/date';
import { isWindows, isLinux } from 'vs/base/common/platform';
import { getPathFromAmdModule } from 'vs/base/common/amd';
import { toLocalISOString } from 'vs/base/common/date';
// Read this before there's any chance it is overwritten
// Related to https://github.com/Microsoft/vscode/issues/30624
......@@ -84,7 +84,17 @@ export class EnvironmentService implements IEnvironmentService {
@memoize
get cliPath(): string { return getCLIPath(this.execPath, this.appRoot, this.isBuilt); }
readonly logsPath: string;
@memoize
get logsPath(): string {
if (!process.env['VSCODE_LOGS']) {
const key = toLocalISOString(new Date()).replace(/-|:|\.\d+Z$/g, '');
const logsPath = path.join(this.userDataPath, 'logs', key);
process.env['VSCODE_LOGS'] = logsPath;
return logsPath;
}
return process.env['VSCODE_LOGS'];
}
@memoize
get userHome(): string { return os.homedir(); }
......@@ -206,14 +216,7 @@ export class EnvironmentService implements IEnvironmentService {
get driverHandle(): string { return this._args['driver']; }
get driverVerbose(): boolean { return this._args['driver-verbose']; }
constructor(private _args: ParsedArgs, private _execPath: string) {
if (!process.env['VSCODE_LOGS']) {
const key = toLocalISOString(new Date()).replace(/-|:|\.\d+Z$/g, '');
process.env['VSCODE_LOGS'] = path.join(this.userDataPath, 'logs', key);
}
this.logsPath = process.env['VSCODE_LOGS'];
}
constructor(private _args: ParsedArgs, private _execPath: string) { }
}
export function parseExtensionHostPort(args: ParsedArgs, isBuild: boolean): IExtensionHostDebugParams {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册