
時折、Slackにコマンドから通知を出したいことがある。
面倒だし、標準出力から渡せたらなぁ…と思って調べたところ、まさにそれを行える『slackcat』というコマンドがあるようだ。
これは使えそうということで、早速試してみる。
1.インストール
インストールはかなり簡単なようで、以下のコマンドで実行できる。
Linuxの場合
bash
wget https://github.com/vektorlab/slackcat/releases/download/v1.1/slackcat-1.1-linux-amd64 -O slackcat
sudo mv slackcat /usr/local/bin/
sudo chmod +x /usr/local/bin/slackcat
Mac OS Xの場合
bashbrew install slackcat
2.設定
次に、通知するSlackの設定を行う。
以下のコマンドを実行し、URLを表示させる。
bashslackcat --configure
shellblacknon@BS-PUB-UBUNTU-01:~$ slackcat --configure slackcat Creating token request for Slackcat slackcat Use the below URL to authorize slackcat if browser fails to launch slackcat http://slackcat.chat/configure
出力されたURLにアクセスすると、ブラウザからSlackとslackcatを連携するかどうか聞かれる。
許可をすると、以下のような画面が表示されるので、出力されているコマンドを実行してやる。
これで設定は終わり。
3.コマンドを実行する
さて、それでは実際にコマンドを実行してみよう。
bash
コマンド | slackcat --channel チャンネル名
コマンド | slackcat --tee --channel チャンネル名 # コンソール上にも表示させる場合
shellblacknon@BS-PUB-UBUNTU-01:~$ echo ABC | slackcat --channel general slackcat connected to blacknon as blacknon slackcat file 1475194489 uploaded to general (0.395s) blacknon@BS-PUB-UBUNTU-01:~$ echo AAA | slackcat --tee --channel general slackcat connected to blacknon as blacknon AAA slackcat file 1475194500 uploaded to general (0.335s)
で、Slackの画面がこちら。
確かに、標準出力で渡した内容がSlack側に通知されている。
手軽だし、設定も簡単なので良さそう。
ただ、サーバ側でcronで回すと行った使い方なら、ちゃんとWebHookを使ったスクリプト書いたほうが良いだろう。