1

私の Ruby スクリプトの 1 つを、開発者ではないチームメイトが利用できるようにしたいと考えています (「Ruby 環境のセットアップと保守に消極的」を読んでください)。

チーム内でもHubotを使用しています。

「Ruby スクリプトを呼び出すことができる Hubot スクリプト (CoffeeScript、つまり JS) を作成するにはどうすればよいですか?」

追伸: 私のスクリプトは完了するまでに時間がかかります。hubot に迅速なフィードバック (「あなたの声を聞きました。あなたのスクリプトを実行します」) を与える方法についてアイデアがあれば、スクリプトが完了したときに通知します。完了 (「スクリプトが正常に完了しました」)、それは素晴らしいことです。

4

2 に答える 2

2

スクリプトの実行に使用できますexecか?何かのようなもの:

module.exports = (robot) ->
  robot.hear /run my command/i, (msg) ->
    exec "cd /path/to/ruby/script && ruby yourscript.rb"
    msg.send "i heard you, i'm gonna run your script."

うまくいけば、これはあなたが正しい道を進むようになるでしょう。スクリプトが正しく実行されたかどうかを通知するためにexecが正常に終了するまで待機させるには、どのような種類のフックを挿入する必要があるかわかりませんが、Googleがそれを支援してくれることを願っています:)

于 2012-12-10T19:29:48.670 に答える
2

きっともうお分かりだと思いますが、この質問が役に立ったので、ショーンの答えから離れてパズルを完成させることができます。

module.exports = (robot) ->
    robot.respond /your regex/i, (msg) ->
    cp = require "child_process" 
    cp.exec "./path/from/root/to/ruby script", (error, stdout, stderr) ->  
        if error
            msg.send "Sorry I encounted this error \n" + stderr
        else
            msg.send "Done. The output: \n" + stdout

これが役立つことを願っています。

于 2013-07-18T21:51:13.363 に答える