Pass env as actual env instead of as a flag
This commit is contained in:
parent
736feaba51
commit
0a9f5d8eee
@ -33,7 +33,6 @@ export class Entry extends Command {
|
|||||||
"bootstrap-fork": flags.string({ hidden: true }),
|
"bootstrap-fork": flags.string({ hidden: true }),
|
||||||
"fork": flags.string({ hidden: true }),
|
"fork": flags.string({ hidden: true }),
|
||||||
|
|
||||||
env: flags.string({ hidden: true }),
|
|
||||||
args: flags.string({ hidden: true }),
|
args: flags.string({ hidden: true }),
|
||||||
};
|
};
|
||||||
public static args = [{
|
public static args = [{
|
||||||
@ -60,7 +59,6 @@ export class Entry extends Command {
|
|||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.assign(process.env, flags.env ? JSON.parse(flags.env) : {});
|
|
||||||
((flags.args ? JSON.parse(flags.args) : []) as string[]).forEach((arg, i) => {
|
((flags.args ? JSON.parse(flags.args) : []) as string[]).forEach((arg, i) => {
|
||||||
// [0] contains the binary running the script (`node` for example) and
|
// [0] contains the binary running the script (`node` for example) and
|
||||||
// [1] contains the script name, so the arguments come after that.
|
// [1] contains the script name, so the arguments come after that.
|
||||||
@ -231,7 +229,7 @@ export class Entry extends Command {
|
|||||||
logger.info(url);
|
logger.info(url);
|
||||||
logger.info(" ");
|
logger.info(" ");
|
||||||
|
|
||||||
if (flags["open"]) {
|
if (flags.open) {
|
||||||
try {
|
try {
|
||||||
await opn(url);
|
await opn(url);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -125,21 +125,21 @@ export const requireModule = (modulePath: string, dataDir: string, builtInExtens
|
|||||||
*/
|
*/
|
||||||
export const forkModule = (modulePath: string, args: string[], options: cp.ForkOptions, dataDir?: string): cp.ChildProcess => {
|
export const forkModule = (modulePath: string, args: string[], options: cp.ForkOptions, dataDir?: string): cp.ChildProcess => {
|
||||||
let proc: cp.ChildProcess;
|
let proc: cp.ChildProcess;
|
||||||
|
const forkOptions: cp.ForkOptions = {
|
||||||
|
stdio: [null, null, null, "ipc"],
|
||||||
|
};
|
||||||
|
if (options.env) {
|
||||||
|
// This prevents vscode from trying to load original-fs from electron.
|
||||||
|
delete options.env.ELECTRON_RUN_AS_NODE;
|
||||||
|
forkOptions.env = options.env;
|
||||||
|
}
|
||||||
const forkArgs = ["--bootstrap-fork", modulePath];
|
const forkArgs = ["--bootstrap-fork", modulePath];
|
||||||
if (args) {
|
if (args) {
|
||||||
forkArgs.push("--args", JSON.stringify(args));
|
forkArgs.push("--args", JSON.stringify(args));
|
||||||
}
|
}
|
||||||
if (options.env) {
|
|
||||||
// This prevents vscode from trying to load original-fs from electron.
|
|
||||||
delete options.env.ELECTRON_RUN_AS_NODE;
|
|
||||||
forkArgs.push("--env", JSON.stringify(options.env));
|
|
||||||
}
|
|
||||||
if (dataDir) {
|
if (dataDir) {
|
||||||
forkArgs.push("--data-dir", dataDir);
|
forkArgs.push("--data-dir", dataDir);
|
||||||
}
|
}
|
||||||
const forkOptions: cp.ForkOptions = {
|
|
||||||
stdio: [null, null, null, "ipc"],
|
|
||||||
};
|
|
||||||
if (isCli) {
|
if (isCli) {
|
||||||
proc = cp.spawn(process.execPath, forkArgs, forkOptions);
|
proc = cp.spawn(process.execPath, forkArgs, forkOptions);
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user