TL;DR
- takosan 向けの簡単なコマンドラインクライアントをpythonで書いてみた
- ついでに PyPI デビューもできてよかった
会社のチャットツールがSlackになってからは通知面ですっかりお馴染みになったSlack版ikachanのtakosan。
特に最近では dojinekoさんの素晴らしいPRが取り込まれてHTTPリクエストだけでかなりいい感じの通知ができるようになりました。
ただパラメタが増えて今まで通りコマンドラインで curl
で色々やるときに結構面倒になってきたので、同じようなノリで使える雑なCLI wrapperをpythonで作ってみました。
使い方とかInstall方法とか
PyPIに公開していますので以下のとおりでインストールできます。
あまり細かく動作確認はできていませんが、python2.6以降(3系も含む)なら動きます。
(python環境は必要に応じて virtualenv
なりと組み合わせてください)
$ pip install kite-string
できること
- dojinekoさんのPRのサンプル内にある key にそのまま対応するオプションを用意してます。( ただし field 周りはまだ実装できてないので未対応です。)
--channel
オプションを複数指定すれば複数チャンネルに同時にポストすることも出来ます。
使用例
$ kite \
> --channel="@laughk" \
> --message="*Hello* \`shachikun\`" \
> --icon=":ocra:" \
> --name="shachikun" \
> --color="#3498db" \
> --pretext="Tell you about slack :ocean:" \
> --author-name="Slack" \
> --author-icon="https://slack.global.ssl.fastly.net/272a/img/icons/favicon-32.png" \
> --author-link="https://slack.com/" \
> --title="Slack (software)" \
> --title-link="http://ja.wikipedia.org/wiki/Slack_(software)" \
> --text="Slack is a team communication tool co-founded by Stewart Butterfield, Eric Costello, Cal Henderson, and Serguei Mourachov. Slack began as an internal tool used by their company Tiny Speck in the development of Glitch, the defunct online game. Slack was launched in August, 2013, and signed up 8000 customers within 24 hours of launch." \
> --image-url="https://slack.global.ssl.fastly.net/558b/img/slack_logo.png" \
> http://takosan.example.com:4979
補完
bashはclickの補完生成で、zshはgenzshcompで生成して completion も用意してみました。
https://github.com/laughk/kite-string/tree/master/data
-
bash
-
zsh
ついでにPyPIデビューもできた
この kite-string は元も「オレオレ便利ツールにして社内GH;E環境くらいにとどめとうこうかな」と思ってたのですが
よくよく考えると takosan そのものがオープンなツールなわけで別に公開しない理由もなさそうと思ったので、setup.py
の書き方を調べてPyPIに登録するところまでやってみました。
そのあたりを調べるときにdistributeなど古い情報が多数引っかかってしまってなかなかほしい情報が出てこなかったのですが、fabricなど普段お世話になっているモジュールのsetup.py
の中身を読んでみたりすると非常に参考になりました。
またpythonプロフェッショナルプログラミング(第2版)にパッケージ作成の解説があり、そちらも非常に参考になりました。
kite-string 本当にシンプルにtakosanのURL向けにリクエストを投げることしかしない雑なツールではあるのだけど、 新卒の頃からずっと「コード書いて自分でツールを作って公開してみたい」と思い続けてきた目標がひょうんなことから達成することができました。
これまで頑張ってコード書いてみても公開したりするのが億劫でなかなか一歩踏み出せないところもあったけど、
少なくともPyPIに登録することに対する抵抗は大分なくなったし、精神的にひとつの壁を越えられた感じがあってこれからは隙あらばどんどん自分で作ったコードを出していこうという気持ちになれたので kite-string は公開してみて本当に良かったと思います。