Pythonのタスク実行ツールです。
ビルドツールのmakeやRubyのRakeのようなものをPythonで実現できます。
公式ページ: http://www.pyinvoke.org/
サンプル
以下のようなPythonスクリプトをtasks.pyという名前で保存しておきます。
ファイル名はtasks.pyでなければなりません。
from invoke import task, run @task def startjob(ctx, taskname, verbose=False, iteration=10): print ("starting job...") print ("taskname = %s" % taskname) print ("verbose = %s" % verbose) print ("iteration = %d" % iteration) run("ls -l | head -n 5") print ("completing job...")
実行例
シェルからinvoke(省略してinvでも可)と入力することで、@taskデコレータが付与された処理を呼び出すことができます。
まずは、実行可能なタスク一覧を表示してみる。
$ inv --list Available tasks: startjob
startjobタスクのhelp表示。
$ inv --help startjob Usage: inv[oke] [--core-opts] startjob [--options] [other tasks here ...] Docstring: none Options: -i, --iteration -t STRING, --taskname=STRING -v, --verbose
startjob実行。
$ inv startjob tasks1 starting job... taskname = tasks1 verbose = False iteration = 10 total 96 -rw-r--r-- 1 kenjih staff 134 4 2 00:39 counter.py drwxr-xr-x@ 5 kenjih staff 170 11 30 2009 examples -rw-r--r-- 1 kenjih staff 296 4 9 19:46 groupby.py -rw-r--r-- 1 kenjih staff 95 11 21 2015 hoge.py completing job...
オプション指定(省略形で指定)。
$ inv startjob tasks1 -v -i 200 starting job... taskname = tasks1 verbose = True iteration = 200 total 96 -rw-r--r-- 1 kenjih staff 134 4 2 00:39 counter.py drwxr-xr-x@ 5 kenjih staff 170 11 30 2009 examples -rw-r--r-- 1 kenjih staff 296 4 9 19:46 groupby.py -rw-r--r-- 1 kenjih staff 95 11 21 2015 hoge.py completing job...
オプション指定(非省略形で指定)。
$ inv startjob tasks1 --verbose --iteration 300 starting job... taskname = tasks1 verbose = True iteration = 300 total 96 -rw-r--r-- 1 kenjih staff 134 4 2 00:39 counter.py drwxr-xr-x@ 5 kenjih staff 170 11 30 2009 examples -rw-r--r-- 1 kenjih staff 296 4 9 19:46 groupby.py -rw-r--r-- 1 kenjih staff 95 11 21 2015 hoge.py completing job...
0 件のコメント:
コメントを投稿