記事の引越しから漏れていたのでサルベージ。
zsh用のscript/generate
およびscript/destroy
の補完関数です。
以下のスクリプトを.zshrcなどに書いておけば、
./script/generate
に続けてTABキーを押す事で
generatorの入力を補完できます。
~/.zshrc
1 _generate () {
2 if [ ! -f .generators ]; then
3 ./script/generate --help | grep '^ [^ ]*: ' | sed 's/[^:]*:/compadd/' | sed 's/\,//g' > .generators
4 fi
5 `cat .generators`
6 }
7
8 compdef _generate generate
9 compdef _generate destroy
RubyGems、Plugin、BuildInの3種類のgeneratorを検出して補完します。
検出動作が重いので、カレントディレクトリにキャッシュファイルを作成して
2度目以降の補完を高速化しています。
generatorを追加した場合など、キャッシュを無効化したい場合は
1 $ rm .generators
でキャッシュファイルを削除してください。
補完が重くても余計なファイルが生成されるよりはマシ、
という場合はこちらをどうぞ。
1 _generate () {
2 `./script/generate --help | grep '^ [^ ]*: ' | sed 's/[^:]*:/compadd/' | sed 's/\,//g'`
3 }
4
5 compdef _generate generate
6 compdef _generate destroy
誰かが作らないかなあ、と思って待っていたのですが、
なかなか出て来ないので自分で作りました。
もっと良いものがあったら教えていただけると嬉しいです。