Skip to content
This repository was archived by the owner on Jan 13, 2024. It is now read-only.

Commit 3775ab6

Browse files
committedMay 1, 2019
path.resolve argv[1] for non-default entrypoint. fixes #671
1 parent e736f85 commit 3775ab6

File tree

5 files changed

+46
-14
lines changed

5 files changed

+46
-14
lines changed
 

‎prelude/bootstrap.js

+5
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ if (process.argv[1] !== 'PKG_DUMMY_ENTRYPOINT') {
5353

5454
if (process.env.PKG_EXECPATH === EXECPATH) {
5555
process.argv.splice(1, 1);
56+
57+
if (process.argv[1] && process.argv[1] !== '-') {
58+
// https://github.com/nodejs/node/blob/1a96d83a223ff9f05f7d942fb84440d323f7b596/lib/internal/bootstrap/node.js#L269
59+
process.argv[1] = require('path').resolve(process.argv[1]);
60+
}
5661
} else {
5762
process.argv[1] = DEFAULT_ENTRYPOINT;
5863
}

‎test/test-50-spawn/test-spawn-a-2.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@
22

33
'use strict';
44

5+
var path = require('path');
56
var spawn = require('child_process').spawn;
67

8+
if (process.send) {
9+
require('./test-spawn-a-child.js');
10+
return;
11+
}
12+
713
var child = spawn(
8-
process.execPath, [
9-
require.resolve('./test-spawn-a-child.js'), 'argvx', '--argvy'
10-
], { stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ] }
14+
process.execPath, [ path.basename(__filename), 'argvx', '--argvy' ],
15+
{ stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ] }
1116
);
1217

1318
child.on('message', function (value) {

‎test/test-50-spawn/test-spawn-a-3.js

+3-7
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,10 @@
44

55
var spawn = require('child_process').spawn;
66

7-
if (process.send) {
8-
require('./test-spawn-a-child.js');
9-
return;
10-
}
11-
127
var child = spawn(
13-
process.execPath, [ process.argv[1], 'argvx', '--argvy' ],
14-
{ stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ] }
8+
process.execPath, [
9+
require.resolve('./test-spawn-a-child.js'), 'argvx', '--argvy'
10+
], { stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ] }
1511
);
1612

1713
child.on('message', function (value) {

‎test/test-50-spawn/test-spawn-a-4.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
'use strict';
44

5-
var path = require('path');
65
var spawn = require('child_process').spawn;
76

87
if (process.send) {
@@ -11,9 +10,8 @@ if (process.send) {
1110
}
1211

1312
var child = spawn(
14-
process.argv[0], [
15-
path.join(process.cwd(), path.basename(__filename)), 'argvx', '--argvy'
16-
], { stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ] }
13+
process.execPath, [ process.argv[1], 'argvx', '--argvy' ],
14+
{ stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ] }
1715
);
1816

1917
child.on('message', function (value) {

‎test/test-50-spawn/test-spawn-a-5.js

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/usr/bin/env node
2+
3+
'use strict';
4+
5+
var path = require('path');
6+
var spawn = require('child_process').spawn;
7+
8+
if (process.send) {
9+
require('./test-spawn-a-child.js');
10+
return;
11+
}
12+
13+
var child = spawn(
14+
process.argv[0], [
15+
path.join(process.cwd(), path.basename(__filename)), 'argvx', '--argvy'
16+
], { stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ] }
17+
);
18+
19+
child.on('message', function (value) {
20+
console.log(value.toString());
21+
child.send(value);
22+
});
23+
24+
child.send(2);
25+
26+
child.on('exit', function (code) {
27+
console.log('Child exited with code', code);
28+
});

0 commit comments

Comments
 (0)
This repository has been archived.