xig_installer なんてものを書いてみた
まとめ
- twitter を IRC に変換して使いたい
- tig.rb を使いたいけどどこからどう入れたらいいかよく分からない
- なんか tig.rb をもっとうまく扱いたい
人向けのツールを作ったよ。
まずはなんでこんなものを作ったのか、理由から。
~/bin になんでも突っ込むのをやめたい
現在自分の twitter 環境は
自宅サーバ上の(tiarra + TwitterIRCGateway) + クライアントPCの LimeChat
という構成になっているんだけど、実はサーバ上のプログラムは
すべて ~/bin 以下に放り込まれている状態
になっている。とりあえず動かし始めるときにはこういうのよくやるんだけど、一昨年末(!)から始めたホームディレクトリの整理の一環で、~/bin 以下も基本的に全利用ホスト共通にしたいと考えている。当然、いちばんのネックは
サーバ用の ~/bin の内容をクライアントに持ってきたくない
というところ。
gem の奥底の実行ファイルを呼ぶのがなんかイヤ
すでに書いたけど twitter への大半のアクセスに TwitterIRCGateway を使っている。ただ実はずいぶん前からこれの Ruby 派生版である tig.rb に乗り換えようとしている。
TwitterIRCGateway は自分にとって Twitter を気軽にかつディープに利用するようになるうえで絶対に外すことのできないプロダクトで、とても感謝している。
だけれど、やはりどうも FreeBSD + Mono という環境のせいなのか、
- よく分からない落ち方をする
- 稀に無限死亡モード(起こしても起こしてもすぐ死ぬ)に入る
- dll の入れ替えを手動で行うアップデート方法がなんかイヤ
などの細かい不満があった。一言で言うと
どうも管理しにくい
ということである。そこで Ruby だけで動くし、gem で install できる net-irc に付属している tig.rb に乗り換えようかということなんだが、
肝心の tig.rb は gem でインストールした examples/ 以下で、gem の深い階層の下の方のファイルを呼び出すのはなんかダサイし扱いにくい1
ということで、net-irc 以下の examples/ 以下にある *ig.rb の実行ファイル、つまり何かと IRC の Gateway として機能する実行ファイルを PATH の通ったところに install してしまうツールを用意することにした。
前置きが長くなったけど、そんなわけで xig_installer というツールを書いた。
紹介
wtnabe's xig_installer at master - GitHub
と
xig_installer | gemcutter | awesome gem hosting
に置いてある。
ぶっちゃけると実にくだらないツールで、gem の奥底にある *ig.rb の一覧を作り、それを gem を実行している Ruby 本体と同じパスに対して install, upgrade, uninstall するだけ。小判鮫すぎるうえにたいしたことはしてない。
でもこれだけで実行時には普通に PATH の通っているところにある tig.rb を叩けばよくなる。これが嬉しい。
使い方は簡単。
- Rubyをインストール
- Rubygems をインストール
- gem install gemcutter
- gem install xig_installer
これで net-irc も依存関係でインストールされるので、あとは
(rehash)
xig_installer install tig.rb
とすると Ruby を置いてあるパスに tig.rb がコピーされる。Ruby のインストールに管理者権限が必要なら
sudo xig_installer install tig.rb
にする必要がある。
その他の機能は
xig_install help
で確認してほしい。
tig.rb の使い方はとりあえず割愛ということでごめんなさい。
gem バージョンじゃなくて git clone したものを使うでしょ、という指摘はとりあえず置いておく。 ↩