anythingのcandidates-fileプラグイン用のファイルリストをgitから生成する

anything-match-pluginの制限→candidates-fileプラグイン推奨 - http://rubikitch.com/に移転しましたのcandidates-fileプラグイン、想像以上に便利です。

で、これを使うにはファイルのリストを自前で用意する必要があり、以下のようなコマンドが紹介されています。

$ find ~ > /tmp/tmp; mv /tmp/tmp /log/home.filelist

これだと、*~みたいな余分なファイルもファイルリストに登録されるのがちょっと気になります。

一方、ボクは~/cに必要なファイルを全部そこに放りこんで、それをgitで管理してます。そこでは.gitignoreを使って、余分なファイルを全部無視するようにしてあります。

じゃあ、この情報を使わないと損だよね。というわけで、gitからファイルリストを生成するシェルスクリプトを書いてみた。

#!/bin/sh
function update(){
    cd $1
    # 絶対パスが出力されないので、補完する
    git ls-files | sed "s_^_$1/_" > /tmp/$2.$$
    mv /tmp/$2.$$ ~/c/filelist/$2
}

# ~/cのファイルリストを~/c/filelist/cに生成する
update ~/c c

# ~/c/external/schemeのファイルリストを~/c/filelist/schemeに生成する
update ~/c/external/scheme scheme

git submoduleまでは追ってくれないのが、ちょっと残念。しょうがない気もするけど。