pass ntive modules fix

This commit is contained in:
Jan Prochazka
2021-12-26 20:54:51 +01:00
parent 0ff59e626e
commit 7126eec4f0
9 changed files with 50 additions and 18 deletions

View File

@@ -9,6 +9,8 @@ const socket = require('../utility/socket');
const { encryptConnection } = require('../utility/crypting');
const { handleProcessCommunication } = require('../utility/processComm');
const processArgs = require('../utility/processArgs');
function getNamedArgs() {
const res = {};
for (let i = 0; i < process.argv.length; i++) {
@@ -140,7 +142,8 @@ module.exports = {
'--is-forked-api',
'--start-process',
'connectProcess',
...process.argv.slice(3),
...processArgs.getPassArgs(),
// ...process.argv.slice(3),
]);
subprocess.on('message', resp => {
if (handleProcessCommunication(resp, subprocess)) return;

View File

@@ -25,6 +25,7 @@ const requireEngineDriver = require('../utility/requireEngineDriver');
const generateDeploySql = require('../shell/generateDeploySql');
const { createTwoFilesPatch } = require('diff');
const diff2htmlPage = require('../utility/diff2htmlPage');
const processArgs = require('../utility/processArgs');
module.exports = {
/** @type {import('dbgate-types').OpenedDatabaseConnection[]} */
@@ -78,7 +79,8 @@ module.exports = {
'--is-forked-api',
'--start-process',
'databaseConnectionProcess',
...process.argv.slice(3),
...processArgs.getPassArgs(),
// ...process.argv.slice(3),
]);
const lastClosed = this.closed[`${conid}/${database}`];
const newOpened = {

View File

@@ -8,6 +8,7 @@ const { fork } = require('child_process');
const { rundir, uploadsdir, pluginsdir, getPluginBackendPath, packagedPluginList } = require('../utility/directories');
const { extractShellApiPlugins, extractShellApiFunctionName } = require('dbgate-tools');
const { handleProcessCommunication } = require('../utility/processComm');
const processArgs = require('../utility/processArgs');
function extractPlugins(script) {
const requireRegex = /\s*\/\/\s*@require\s+([^\s]+)\s*\n/g;
@@ -98,15 +99,22 @@ module.exports = {
const pluginNames = _.union(fs.readdirSync(pluginsdir()), packagedPluginList);
console.log(`RUNNING SCRIPT ${scriptFile}`);
// const subprocess = fork(scriptFile, ['--checkParent', '--max-old-space-size=8192'], {
const subprocess = fork(scriptFile, ['--checkParent', ...process.argv.slice(3)], {
cwd: directory,
stdio: ['ignore', 'pipe', 'pipe', 'ipc'],
env: {
...process.env,
DBGATE_API: global['API_PACKAGE'] || global['dbgateApiModulePath'] || process.argv[1],
..._.fromPairs(pluginNames.map(name => [`PLUGIN_${_.camelCase(name)}`, getPluginBackendPath(name)])),
},
});
const subprocess = fork(
scriptFile,
[
'--checkParent', // ...process.argv.slice(3)
...processArgs.getPassArgs(),
],
{
cwd: directory,
stdio: ['ignore', 'pipe', 'pipe', 'ipc'],
env: {
...process.env,
DBGATE_API: global['API_PACKAGE'] || global['dbgateApiModulePath'] || process.argv[1],
..._.fromPairs(pluginNames.map(name => [`PLUGIN_${_.camelCase(name)}`, getPluginBackendPath(name)])),
},
}
);
const pipeDispatcher = severity => data =>
this.dispatchMessage(runid, { severity, message: data.toString().trim() });

View File

@@ -6,6 +6,7 @@ const AsyncLock = require('async-lock');
const { handleProcessCommunication } = require('../utility/processComm');
const lock = new AsyncLock();
const config = require('./config');
const processArgs = require('../utility/processArgs');
module.exports = {
opened: [],
@@ -41,7 +42,8 @@ module.exports = {
'--is-forked-api',
'--start-process',
'serverConnectionProcess',
...process.argv.slice(3),
...processArgs.getPassArgs(),
// ...process.argv.slice(3),
]);
const newOpened = {
conid,

View File

@@ -5,6 +5,7 @@ const socket = require('../utility/socket');
const { fork } = require('child_process');
const jsldata = require('./jsldata');
const { handleProcessCommunication } = require('../utility/processComm');
const processArgs = require('../utility/processArgs');
module.exports = {
/** @type {import('dbgate-types').OpenedSession[]} */
@@ -69,7 +70,8 @@ module.exports = {
'--is-forked-api',
'--start-process',
'sessionProcess',
...process.argv.slice(3),
...processArgs.getPassArgs(),
// ...process.argv.slice(3),
]);
const newOpened = {
conid,