linenotcatというツールを書いた
LINE Notifyが便利でよく使っています.LINE Notifyが何かとか何が便利なのかとかをご存じない方は
コマンドラインから LINE にメッセージを送れる LINE Notify « LINE Engineers' Blog
を読んでいただければと思いますが,あえてものすごくざっくり説明するとim.kayacのLINE版みたいなやつです.
んで,Slackというやつも便利で,こちらはチャットツールなわけですが,そのSlackにはslackcatというこれまた便利なコマンドラインツールがあり,これはコマンドを叩くだけで任意のSlackのchannelに対してメッセージやファイルの中身を送ることが出来ます.その名の通りcatコマンドの結果がSlackに流れるという感じ.
というわけでそのLINE Notify版を作ったという話です.コマンドライン経由でLINE Notifyにメッセージを送ることが出来ます.
LINE NOTify + catということでlinenotcatという名称です *1.
基本的な使い方としてはslackcatとだいたい同じで,
$ echo 'YOUR_ACCESS_TOKEN' > $HOME/.linenotcat
という感じでAccess Tokenを登録するともう使えます.
$ echo 'Hello world!' | linenotcat
という風にすれば標準入力経由で投稿が出来て,
$ linenotcat /your/awesome/file.txt
という風にすればファイルの中身を投稿できます.
$ echo 'Hello world!' | linenotcat --tee Hello world!
teeもできます.
$ tail -f /your/awesome/error.log | linenotcat --stream
stream modeなんてのもあり,上記の例の場合はtailが何か出力したらその内容を投稿するようになります (現状だと3秒間内容を溜め込んで投稿するようになっています).
$ linenotcat --message 'Hello world!'
なにかと便利だったのでそのままメッセージ送れるモードなんてのもあります.
$ linenotcat --image /path/to/your/awesome/image.png
LINE Notifyは実は画像をアップロードして送れるという機能もあるので画像も送れるようにしました
$ linenotcat --image /path/to/your/awesome/image.png --message "Yo!"
メッセージも添えられます.
$ linenotcat --config_file /path/to/your/config
config fileつまりAccess Tokenも差し替える事ができます.送り先を差し替えられたり出来ます.
$ linenotcat --status {"status":200,"message":"ok","targetType":"USER","target":"moznion"}
今のTokenの情報を引いてくることも出来ます.
という感じです.まあこんなん無くてもshell scriptで大概解決するんですがバイナリポン置きで動くと楽だなという感じでこさえた次第です.
動くバイナリはGitHub Releasesにあるのでご利用下さい.
[追記]
homebrewに対応しました.
$ brew tap moznion/homebrew-linenotcat $ brew install linenotcat
*1:そしてLINEは猫ではない