Skip to content

Commit fb8114f

Browse files
committed
fix
1 parent 48ff97f commit fb8114f

File tree

2 files changed

+44
-14
lines changed

2 files changed

+44
-14
lines changed

resources/js/electron-plugin/src/server/api/childProcess.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,50 @@ import express from 'express';
22
import { utilityProcess } from 'electron';
33
import state from '../state';
44
import { notifyLaravel } from "../utils";
5+
import {join} from 'path'
56

67
const router = express.Router();
78

89
router.post('/start', (req, res) => {
910
const {alias, cmd, args, cwd, env} = req.body
1011

11-
console.log(req.body)
12-
13-
if (state.processes[alias] !== null) {
12+
if (state.processes[alias] !== undefined) {
1413
res.sendStatus(409)
1514
return
1615
}
1716

1817
const proc = utilityProcess.fork(
18+
join(__dirname, '../../electron-plugin/dist/server/childProcess.js'),
1919
cmd,
20-
args || null,
2120
{
22-
env: env || null,
23-
cwd: cwd || null,
21+
cwd,
2422
serviceName: alias,
23+
stdio: 'pipe',
24+
env: {
25+
...process.env,
26+
...env,
27+
}
2528
}
2629
)
2730

28-
console.log(proc)
29-
3031
proc.stdout.on('data', (data) => {
31-
console.log('Message received from process [' + alias + ']:', data)
32+
console.log('Message received from process [' + alias + ']:', data.toString())
3233
notifyLaravel('events', {
3334
event: 'Native\\Laravel\\Events\\ChildProcess\\MessageReceived',
3435
payload: {
3536
alias,
36-
data,
37+
data: data.toString(),
3738
}
3839
})
3940
})
4041

4142
proc.stderr.on('data', (data) => {
42-
console.log('Error received from process [' + alias + ']:', data)
43+
console.log('Error received from process [' + alias + ']:', data.toString())
4344
notifyLaravel('events', {
4445
event: 'Native\\Laravel\\Events\\ChildProcess\\ErrorReceived',
4546
payload: {
4647
alias,
47-
data,
48+
data: data.toString(),
4849
}
4950
})
5051
})
@@ -58,14 +59,15 @@ router.post('/start', (req, res) => {
5859
})
5960

6061
proc.on('exit', (code) => {
61-
console.log('Process [' + alias + '] exited!')
62+
console.log('Process [' + alias + '] exited with code [' + code + ']!')
6263
notifyLaravel('events', {
6364
event: 'Native\\Laravel\\Events\\ChildProcess\\ProcessExited',
6465
payload: {
6566
alias,
6667
code,
6768
}
6869
})
70+
delete state.processes[alias]
6971
})
7072

7173
state.processes[alias] = proc
@@ -78,7 +80,7 @@ router.post('/stop', (req, res) => {
7880

7981
const proc = state.processes[alias]
8082

81-
if (proc === null) {
83+
if (proc === undefined) {
8284
res.sendStatus(200)
8385
return
8486
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const { spawn } = require('child_process')
2+
3+
const proc = spawn(
4+
process.argv[2],
5+
process.argv.slice(3),
6+
{
7+
// cwd: options.cwd,
8+
// env: {
9+
// ...process.env,
10+
// ...options.env
11+
// },
12+
}
13+
);
14+
15+
// Handle normal output
16+
proc.stdout.on('data', (data) => {
17+
console.log(data.toString());
18+
});
19+
20+
// Handle error output
21+
proc.stderr.on('data', (data) => {
22+
console.error(data.toString());
23+
});
24+
25+
// Handle process exit
26+
proc.on('close', (code) => {
27+
process.exit(code)
28+
});

0 commit comments

Comments
 (0)