トップ «前の日記(2010-01-01) 最新 次の日記(2010-01-07)» 編集

2010-01-04 [長年日記]

_ 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 を叩けばよくなる。これが嬉しい。

使い方は簡単。

  1. Rubyをインストール
  2. Rubygems をインストール
  3. gem install gemcutter
  4. 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 の使い方はとりあえず割愛ということでごめんなさい。

*1 gem バージョンじゃなくて git clone したものを使うでしょ、という指摘はとりあえず置いておく。