pathogen.vimでスクリプトの管理

pathogen.vimvimプラグインの管理をするのに便利なvimプラグイン。
導入などはhttp://d.hatena.ne.jp/mkataigi/20101107/1289134775http://d.hatena.ne.jp/ksmemo/20110111/p1 に書いてくれている人が居るので省略する。

全てのプラグインにgitレポジトリがあれば*1gitのsubmoduleを利用すれば自動で更新が出来るのだけど、mercurialで管理されていたり、vba、zipなどのアーカイブで配布されているものもある。そして、vimprocのように再makeする必要のあるものもある。
そういうものの管理は今までは手動でやってきたけれど、スクリプトを書いて自動化してみた。

#/bin/sh

BUNDLE=~/.vim/bundle

cd $BUNDLE

for nm in *
do
    if [ -d "$BUNDLE/$nm" ] ; then
        cd "$BUNDLE/$nm"
        echo "update $nm"
        case $nm in
            *.git)
                git pull ;;
            *.hg)
                hg pull ;;
            *.script)
                $BUNDLE/${nm}.update ;;
            *.manual)
                echo "please update manually." ;;
            *)
                echo "can't determine the way to update." ;;
        esac
        if [ -f "$BUNDLE/$nm.after" ] ; then
            $BUNDLE/${nm}.after
        fi
        cd ..
    fi
done

全てのプラグインを統一的に扱うために、git submoduleの利用はやめて、プラグインの格納されているディレクトリ名の末尾でレポジトリの種類を.hgや.gitのように表すようにした。
更新した後で別のプログラムを走らせなくてはいけないときは、プラグインの格納されているディレクトリ名の末尾に.afterをつけた名前のファイルが実行されるようにした。

*1:http://www.vim.org/scripts/index.php にアップロードされているものはhttps://github.com/vim-scriptsがある