如何使IRC上的Hubot打印外部脚本输出,因为它是一次接收而不是全部?

时间:2014-02-24 23:01:46

标签: python coffeescript irc hubot

我在IRC上运行了一个Hubot实例。在我的脚本目录中,我有几个链接到外部python脚本的coffeescripts。我的问题是我的数据应该在外部脚本中的其他数据之前打印出来,例如“处理请求。请稍候......”等,Hubot等待整个脚本完全执行并立即转储输出IRC 。

如何修改我的coffeescripts,以便在收到外部脚本时通过输出发送?

coffeescript示例:

# Commands:
#   Hubot jira-add-comment <ticket> "comment" - Add given comment to a JIRA ticket

{spawn} = require 'child_process'
module.exports = (robot) ->

addComment = (msg,ticket,comment) -> 
    output = spawn "/path/to/externalscript.py", [ticket,comment]
    output.stdout.on 'data', (data) ->
        msg.send data.toString()

robot.respond /jira-add-comment (\w+-\d+) (.+)$/i, (msg) ->
    addComment(msg,msg.match[1].trim(),msg.match[2])

谢谢!

1 个答案:

答案 0 :(得分:0)

可能是因为你的示例脚本中的缩进不好吗?

output.stdout.on 'data', (data) ->
msg.send data.toString()

应该是:

output.stdout.on 'data', (data) ->
    msg.send data.toString()