ソースコード検索エンジン gonzui を gem 化した

ソースコード検索エンジンはもっと評価されるべきだと思う。

  • 過去に自分が書いたソースコードから特定の機能を検索したい
  • 優秀な人が書いたコードから特定の API の使い方を調べたい

という時に、自分用のソースコード検索エンジン
持っておけばそれが実現できる。


個人で使えるソースコード検索エンジンとして
Ruby で書かれた gonzui があるが
インストールが少し面倒だった。
gonzui はせっかく Ruby で書かれているので
gem 化したというのが今回のお話。

やったこと

Gonzui - |▽ ̄)ノ なページ再帰
GNU Make を使ったインストール方法から
setup.rb を使ったインストール方法に書き換えている
コードが公開されていたので、それをベースに gem 化した。


ついでに途中まで書かれていた Git 対応コードを
動くように修正した。


中の人に本当に感謝。

インストール

Berkley DB

利用には Berkley DB と その Ruby Binding が必要。
Ubuntu なら以下で一発。

$ sudo apt-get install libdb-dev libdb-ruby1.8

Mac の人は以下の記事を参考に
d:id:mallowlabs:20090516:intelmacbdb
今のところ Ruby Binding が Berkley DB 4.7 まで
しか対応していないのでご注意を。

gonzui

gonzui のインストール

$ sudo gem install gonzui


Ubuntu の人は以下を $PATH に追加する。

/usr/lib/gems/1.8/bin

これでインストール完了。

使い方

$ mkdir ~/gonzui
$ cd ~/gonzui
$ gonzui-import git://github.com/mallowlabs/gonzui.git
$ gonzui-import git://github.com/mallowlabs/langscan.git
$ gonzui-server

gonzui と LangScan をデータベースに格納した状態で
Web アプリケーションが起動する。

あとは

http://localhost:46984/

にアクセスすれば検索が可能。


こんな感じ。


デーモンとして起動する場合には --daemon オプションで。

$ gonzui-server --daemon


リポジトリが更新された場合は

$ gonzui-update

gonzui 側のデータベースを更新できる。


もっと詳しい使い方は
README を読むか
各コマンドを --help オプション付きで叩けば良い。

今後やりたいこと

いつになるかはわからないけども。

  • doc2txt を使用した pdf, doc, xls などへの対応
    • setup.rb 対応された方へのお礼に
  • Kyoto Cabinet 対応
    • Berkley DB は DL に Oracle への登録が必要だったり、Ruby Binding がメンテされてなかったりしていろいろアレなので
  • Redmine Plugin 作成