« githubのwikiエンジン「Gollum」を試してみた。 | Home | YAPC ASIA 2011で刺激されてJavaScriptに没頭してsonificator作った。 »

June 16, 2011

MTのワンライナーを素早く書く

通常、MTのパッケージはシステムレベルにインストールされません。そのため、lib/ とextlib/ へのパスを実行時に追加する必要があります。
例えば、EntryオブジェクトをDumpするワンライナーは以下のようになります。

$ perl -Ilib -Iextlib -MMT -MData::Dumper -e 'MT->new; print Dumper(MT->model("entry")->load(42))'

また、プラグインごとのlibディレクトリへのパスは、MTのインスタンス作成時に動的に追加されます。そのため、MTのプラグインを開発中、コンパイルチェックをしたい時などに直接実行する事ができません。

$ perl -Ilib -Iextlib -Iplugins/MyPlugin/lib -c plugins/MyPlugin/lib/MyPlugin.pm

長いですね。

そこで、以下のようなモジュールを、perlのパスの通った場所に設置します。

package T;
use strict;
use warnings;
use lib qw( lib extlib );
use MT;
BEGIN { MT->new };
1;

名前は、T.pmです。これで

$ perl -MT -MData::Dumper -e 'print Dumper(MT->model("entry")->load(42))'
$ perl -MT -c plugins/MyPlugin/lib/MyPlugin.pm

などと、perlにMT専用オプションが追加されたような錯覚を覚える事が出来ます。

No TrackBacks

TrackBack URL: http://aklaswad.com/cgi-bin/mt/mt-tb.cgi/322

Leave a comment

OpenID accepted here Learn more about OpenID

About this Entry

This page contains a single entry by aklaswad published on June 16, 2011 11:36 AM.

githubのwikiエンジン「Gollum」を試してみた。 was the previous entry in this blog.

YAPC ASIA 2011で刺激されてJavaScriptに没頭してsonificator作った。 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.