今からお前んちこいよ

多摩川沿いにて細々とお勉強。

ircにhubotを登場させる

ネタが無い。最近はまっていることと言えばbot作りということで、既にあちこちでhubotの記事がありますが同僚にも色々教えてもらったしメモとして残していこうかなと。

hubotをircに置いて、色々やってもらうところまでを目標に。
まずはircのチャットルームにhubotを登場させる。

【参考】
HubotでIRC Botを作る - おいら屋ファクトリー
hubotで快適BOT生活


やること

  • 1,npmインストール
  • 2,coffeescriptとhubotインストール
  • 3,ircへ登場させる(デーモン化)
  • 4,bot生存確認方法


1,npmインストール

http://nodejs.jp/nodejs.org_ja/docs/v0.10/よりダウンロードできる。0.10.25が今のところ安定している?という噂。

2,coffeescriptとhubotインストール

hubot用にフォルダ作成して、

$ mkdir testbot
$ cd testbot

package.jsonを作る

{
  "name": "hosted-hubot",
  "version": "2.4.7",
  "author": "GitHub Inc.",
  "keywords": "github hubot campfire bot",
  "description": "A simple helpful Robot for your Company",
  "licenses": [
    {
      "type": "MIT",
      "url": "http://github.com/github/hubot/raw/master/LICENSE"
    }
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/github/hubot.git"
  },
  "dependencies": {
    "hubot": "*",
    "hubot-scripts": "*",
    "optparse": "*",
    "hubot-irc": "*",
    "time": "*",
    "cron": "*",
    "coffee-script": "~1.7.1"
  }
}

あとはインストール

$ npm install

これでpackage.jsonに記載したモジュールがnode_module階層下にできる

$ npm install MODULE_NAME

としてモジュールを追加していく時は、 --saveをオプションに付けとくとpackage.jsonに自動で追記してくれるので便利

$ npm install MODULE_NAME --save

といった感じで。


3,ircへ登場させる(デーモン化)

foreverのインストール

$ npm install forever -g



run.sh作る

#!/usr/bin/env bash

# hubot
export PORT=8889

# hubot-irc
export HUBOT_IRC_NICK="botchan"
export HUBOT_IRC_USERNAME="irchubot"↲
export HUBOT_IRC_REALNAME="irchubot"↲
export HUBOT_IRC_SERVER=""
export HUBOT_IRC_ROOMS="#hogehoge"
export HUBOT_IRC_SEND_NOTICE_MODE="true" # 全発言をNotice

forever start -c coffee node_modules/hubot/bin/hubot -a irc

stop.shも作る

#!/usr/bin/env sh

forever stop node_modules/hubot/bin/hubot

最終的にこんな階層になる

$ tree -L 1
.
├── node_modules
├── package.json
├── run.sh
└── stop.sh

あとはコマンドで、

$ sh run.sh

で指定してチャンネルにbotちゃんが登場するはず


4,bot生存確認方法

foreverでデーモン化させている訳ですが、

$ forever list
info:    Forever processes running
data:        uid  command script                              forever pid   logfile                                uptime      
data:    [0] cH0P coffee  node_modules/hubot/bin/hubot -a irc 86471   86472 /Users/XXXXXXXX/.forever/cH0P.log 0:0:0:3.262

こんな感じでプロセス一覧と、ログの場所がわかる。