summaryrefslogtreecommitdiff
path: root/app/relay/runner.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/relay/runner.js')
-rw-r--r--app/relay/runner.js18
1 files changed, 14 insertions, 4 deletions
diff --git a/app/relay/runner.js b/app/relay/runner.js
index 94b7779..c04419d 100644
--- a/app/relay/runner.js
+++ b/app/relay/runner.js
@@ -240,11 +240,18 @@ export function run_task_with_activity(task, module, activity, preempt=false, wa
watch && console.log("watching stdout..")
- subprocess.stdout.on('data', data => {
- watch && remote.emit('task_res', { type: 'stdout', processor, data: data.toString('utf8') })
+ let count = 0
+ subprocess.stdout.on('data', buf => {
+ const data = buf.toString('utf8')
+ watch && remote.emit('task_res', { type: 'stdout', processor, data })
+ if (activity.listen) {
+ const res = activity.listen(task, data, count++)
+ if (res) remote.emit('task_res', res)
+ }
})
- subprocess.stderr.on('data', data => {
- watch && remote.emit('task_res', { type: 'stderr', processor, data: data.toString('utf8') })
+ subprocess.stderr.on('data', buf => {
+ const data = buf.toString('utf8')
+ watch && remote.emit('task_res', { type: 'stderr', processor, data })
})
let finished = false
@@ -253,6 +260,8 @@ export function run_task_with_activity(task, module, activity, preempt=false, wa
if (finished) return
finished = true
task.processing = false
+ task.completed = true
+ task.success = false
console.log('task error', subprocess.exitCode, err)
finish({
type: 'task_error',
@@ -267,6 +276,7 @@ export function run_task_with_activity(task, module, activity, preempt=false, wa
set_connected(false)
task.processing = false
task.completed = true
+ task.success = true
finish({
type: 'task_finish',
task,