vbuilder の bash 用補完スクリプトを作ってみた

昨晩に作成した vbuilder の bash 用補完スクリプトを vbootstrap-0.0.15 に同梱しました。

設定

${HOME}/.bashrc などに、以下の行を追加します。

. /etc/bash_completion.d/vbuilder

以後、bash を起動するたびに、この vbuilder の補完が有効になります。

使い方

例として、以下のコマンドラインを実行することにします。

$ vbuilder --version 5.0 --arch i386 --clean --build-rpm /tmp/hoge/hoge-1.0-1vl6.src.rpm

早速、コマンドラインで vbuilder を入力してから、Tab キーを叩くと、

 $ vbuilder --
 --arch           --clean          --remove-rpm     --with-compat32
 --build          --dist-upgrade   --target         
 --build-rpm      --install-rpm    --version   
 $ vbuilder --

のように、オプション --version --arch --dist-upgrade --target --with-compat32 とアクション --clean --build --build-rpm --install-rpm --remove-rpm が候補として表示されます。

次に、v を押してから、Tab キーを叩くと、

$ vbuilder --version

のように、"version" が補完されます。

さらに、スペースキーを押してから、Tab キーを叩くと、

 $ vbuilder --version 
 4.2_i386       5.0            5.0_i386       VineSeed       VineSeed_i386
 $ vbuilder --version 

"version" で指定できる候補が表示されます。

続いて、5 を押してから、Tab キーを叩くと、

 $ vbuilder --version 5.0 
 5.0       5.0_i386  
 $ vbuilder --version 5.0

のように補完されます。

同様に --arch, --clean も補完できます。

最後の --build-rpm の引数は、ディレクトリおよび *src.rpm しか補完されません。実際に、

 $ ls /tmp/hoge/
 foo-1.0-1vl6.i686.rpm  foo-1.0-1vl6.src.rpm  hoge-1.0-1vl6.src.rpm

とします。すると、

 $ vbuilder --version 5.0 --arch i386 --clean --build-rpm /tmp/hoge/
 foo-1.0-1vl6.src.rpm   hoge-1.0-1vl6.src.rpm  
 $ vbuilder --build-rpm /tmp/hoge/

のように補完候補が表示されます。

 $ vbuilder --version 5.0 --arch i386 --clean --build-rpm /tmp/hoge/hoge-1.0-1vl6.src.rpm
 $ sudo vbuilder --version 5.0 --arch i386 --clean --build-rpm /tmp/hoge/hoge-1.0-1vl6.src.rpm

このように補完候補をうまく取ると、快適な vbuilder ライフが過ごせるようになりました(w