Cy-Pi

自転車のこと。たまにラズパイのこと。

ラズパイとslackを連携させる:その2(ラズパイに住まわせる編)

その1に引き続きメモ書き

hubotからラズパイを操作する

その1でhubotがslack上で卓球してくれるようになった。 さらに彼にコマンドを渡して実行してくれるように組み上げる。

/scriptに次に書いたようなcoffeeスクリプトを置く。 明らかに変なコードだけど今は動けばいい。 このcoffeeはwrapperとして働くので、実行ファイルは自分の好きな言語で組める。

# Description:

module.exports = (robot) ->
 robot.respond /(.*)$/i, (msg) ->
    sndcmd = msg.match[1]
    @exec = require('child_process').exec
    command = "#{sndcmd}"
    # msg.send command
    msg.send sndcmd
    @exec command, (error, stdout, stderr) ->
      msg.send error if error?
      msg.send stdout if stdout?
      msg.send stderr if stderr?

ラズパイ起動時にhubot起動する

#!/bin/sh

cd <hubot_directory>
sudo -u <user_name> bin/hubot -a slack
  • Systemdの設定ファイルを用意する /etc/systemd/system/mybot.service
[Unit]
Description = <setsumei>

[Service]
ExecStart=<full_path: mybot.sh>
Restart=always
Type=simple

[Install]
WantedBy=multi-user.target
sudo systemctl enable mybot

これでrebootすれば起動しているはずだ。