2011年10月9日日曜日

playコマンドの動作について

playの勉強会をUstで参加?したため、ちょっと色々コードリーディングして、
動作を把握していこうかなぁと思います。

まずは、playコマンドを叩いて起動する部分について。

> ./play run myApplication
と実行したときの動作。


  1. playコマンド
    1. play_command、application_path、remain_argsを取得
  2. framework/pym/play/application.py
    1. application_pathからconf/application.conf、conf/routesの存在チェック。application.confのパース
  3. framework/pym/play/cmdloader.py
    1. commands配下にあるコマンドスクリプト一覧を取得する。
    2. コマンドスクリプトのCOMMANDからplay_commandと一致するスクリプトファイルを取得する。
    3. 一致した場合はスクリプトファイルのexecuteを実行する。
    4. runの場合:base.pyの中のrunを実行し、java_cmdでplay.jarを起動する引数を作成して、Popenで子プロセスを立ち上げる。



独自コマンド追加

commandsディレクトリの中にXXXX.py(適当なファイル名)を追加して、COMMANDSに独自コマンド名のリストを定義して、executeメソッドで起動をする。


※play run 実行時のjava起動コマンドライン引数


java
-javaagent:/Users/kazuhiro/work/play/play-1.2.3/framework/play-1.2.3.jar
-Dfile.encoding=utf-8
-Xdebug
-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
-Dplay.debug=yes
-classpath [設定するパス]
-Dapplication.path=/Users/kazuhiro/work/play/play-1.2.3/myApplication
-Dplay.id=
play.server.Server

0 件のコメント:

コメントを投稿