Posted at

Paver 応用編 - プロジェクトに組み込む

More than 5 years have passed since last update.

順番としては前後してしまうのですが、応用編です。

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