2012-05-09 7 views
4

私はPloneインスタンスに対して時折実行するバッチジョブを持っています。 Plone製品やその他のPloneコードのコードにアクセスし、カタログを照会する必要があります。私はPloneの製品でスクリプトを含め、私は卵の新しいバージョンを指すようにパスを変更する必要が一緒に私の製品の新バージョンが来た場合、現在明らかにPlone製品のエントリポイントを定義して、bin/instanceによって呼び出されたかのようにスクリプトを実行できます。

bin/instance run <path to script in eggs directory> 

を経由して、それを実行しました。私は何をしたいのは、私の製品のsetup.pyでスクリプトのいずれかのエントリポイントを定義し、私はこれを行うにはどうすればよいし、まだ提供し、私はちょうど

bin/myscript 

を実行できるように、その後、zc.recipe.eggのようなビルドアウトレシピを使用しています最高レベルのappオブジェクトと私のPloneインスタンスにインストールされているすべてのコードへの私のスクリプトへのアクセス?

答えて

6

Zope 2.13では、zopectl.commandエントリポイントのスクリプトを登録できます。これらは、bin/instanceコントローラスクリプトで新しいコマンドとして扱われます。

たとえば、次のようにコマンドに自分の卵で呼び出し可能オブジェクトを結ぶだろう。

[zopectl.command] 
mybatch = example.egg.commands:mybatch 

あなたのルートレベルのアプリケーションオブジェクト、および残りのコマンドライン引数が渡されます呼び出し可能:

def mybatch(app, args): 
    site = app.mysiteid 
    # remember to set up your site correctly (create request, call hooks, etc) 

argsを使用して、スクリプトのコマンドラインスイッチを実装します。

Configuring and Running Zope documentationを参照してください。コマンド名には名前にダッシュ(-)を使用できないことに注意してください。

+0

これはまさに私が後にしたものです。ありがとう! – scarba05

+0

@ scarba05:アップデートいただきありがとうございます。私は言い換えてそれを加えた。 –

関連する問題