LoginSignup
10
9

More than 5 years have passed since last update.

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

Posted at

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

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
10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9