mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 17:02:41 +01:00
4636833f3d
Summary: This was broken in D11383. Basically, I had the `ws` module installed globally whilst testing, but the changes made do not work if the `ws` module is installed locally (i.e. in the `./support/aphlict/server/node_modules` directory). After poking around, it seems that this is due to the sandboxing that is done by `JX.require`. A quick fix is to just //not// use `JX.require`, although you may have a better idea? The error that is occurring is as follows: ``` <<< UNCAUGHT EXCEPTION! >>> Error: Cannot find module 'ws' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at extra.require (/usr/src/phabricator/webroot/rsrc/externals/javelin/core/init_node.js:48:16) at /usr/src/phabricator/support/aphlict/server/lib/AphlictClientServer.js:10:17 at Script.(anonymous function) [as runInNewContext] (vm.js:41:22) at Object.JX.require (/usr/src/phabricator/webroot/rsrc/externals/javelin/core/init_node.js:58:6) at Object.<anonymous> (/usr/src/phabricator/support/aphlict/server/aphlict_server.js:102:4) at Module._compile (module.js:456:26) >>> Server exited! ``` Test Plan: Now able to start the Aphlict server. Reviewers: joshuaspence Reviewed By: joshuaspence Subscribers: Korvin, epriestley Maniphest Tasks: T6987 Differential Revision: https://secure.phabricator.com/D11425
45 lines
918 B
JavaScript
45 lines
918 B
JavaScript
var JX = require('./javelin').JX;
|
|
|
|
var fs = require('fs');
|
|
var util = require('util');
|
|
|
|
JX.install('AphlictLog', {
|
|
construct: function() {
|
|
this._consoles = [];
|
|
this._logs = [];
|
|
},
|
|
|
|
members: {
|
|
_consoles: null,
|
|
_logs: null,
|
|
|
|
addConsole: function(console) {
|
|
this._consoles.push(console);
|
|
return this;
|
|
},
|
|
|
|
addLog: function(path) {
|
|
this._logs.push(fs.createWriteStream(path, {
|
|
flags: 'a',
|
|
encoding: 'utf8',
|
|
mode: 0664,
|
|
}));
|
|
return this;
|
|
},
|
|
|
|
log: function() {
|
|
var str = util.format.apply(null, arguments);
|
|
var date = new Date().toLocaleString();
|
|
str = '[' + date + '] ' + str;
|
|
|
|
var ii;
|
|
for (ii = 0; ii < this._consoles.length; ii++) {
|
|
this._consoles[ii].log(str);
|
|
}
|
|
|
|
for (ii = 0; ii < this._logs.length; ii++) {
|
|
this._logs[ii].write(str + '\n');
|
|
}
|
|
},
|
|
},
|
|
});
|