順番としては前後してしまうのですが、応用編です。
Paver 本体に組み込まれている minilib
というコマンドを利用すると、 Paver のよく使う部分を zip にまとめたライブラリを作成することができます。これは30KB以下なので、プロジェクトにこのまま置いてしまえば、 Paver をインストールしていなくても Python がインストールされていれば使えるスクリプトにすることができます。
これはビルド・デプロイスクリプトなんかに便利ですね。
minilib を作る
$ paver minilib
---> paver.misctasks.minilib
Generate paver-minilib.zip
$ ls -lh
total 56
-rw-r--r-- 1 inada-n staff 26K 8 27 21:15 paver-minilib.zip
これでできた paver-minilib.zip
をソース配布物に組み込むか、バージョン管理に入れてしまえば、 Paver をインストールしていない人でも利用できるようになります。
minilib を使ったスクリプトを書く
Paver をインストールしていない場合、 paver コマンドが利用できないので、 pavement.py
を自力で実行できるようにしてやる必要があります。どうせなのでもっと短い名前もつけてしまいましょう。今回は pave
という名前にしてみます。
pave
#!/usr/bin/env python
# coding: utf-8
import sys
import os
# minilib にパスを通す.
sys.path.append(os.path.join(os.path.dirname(__file__), 'paver-minilib.zip'))
from paver.easy import *
@task
def hello():
print "hello"
if __name__ == '__main__':
# -f filename で pavement.py 以外のファイルを指定できる事と、
# sys.argv[0] が実行したスクリプトファイル名である事を利用する.
tasks.main(['-f'] + sys.argv)
$ chmod +x pave
$ ./pave hello
---> pavement.hello
hello