2011/06/30

ExtUtils::MakeMakerでMETA.ymlにmeta情報を追加する方法

repository情報をCPANに載せたい

githubで管理しているモジュールをCPANに上げたら、(誰かがpull requestを送ってくれるかもしれないので)repository情報をCPANに載せたいところです。

Module::Installを使用している場合は、 auto_set_repositoryを使うと勝手にセットしてくれますが、ExtUtils::MakeMakerでの書き方を知らなかったので調べました。

META_MERGEを使う

    WriteMakefile(
        NAME         => 'MyApp',
        VERSION_FROM => "lib/MyApp.pm",
        ABSTRACT => 'My great Application!!',
        PREREQ_PM => {
            'ExtUtils::MakeMaker'     => 6.31,
            'ExtUtils::Install'       => 1.46,
        },
        META_MERGE => {
            resources => {
                license => 'http://dev.perl.org/licenses/',
                repository => 'git://github.com/example/myapp.git',
            },
        },
        LICENSE   => 'perl',
    );

META_ADDでも追加できるがMETA_ADDはdefaultのmeta情報を上書きするので、とりあえずMETA_MERGE使っておけってExtUtils::MakeMakerのPODに書いてありました。

2011/06/29

App::pfswatchをリリースしました(0.04に合わせて修正)

2011-07-01 追記

配布場所

http://beta.metacpan.org/module/App::pfswatch

概要

ファイルの変更を検知して、指定のコマンドを実行するツール

インストール

CPANから

    cpanm App::pfswatch

CPANで見つからない場合はgithubから

    git clone git://github.com/ysasaki/p5-app-pfswatch.git
    cd p5-app-pfswatch
    cpanm .

使い方

App::pfswatchに付属しているpfswatchコマンドを使います

2011-07-01 0.04で修正

-eは残りの引数すべてをCOMMANDとして受け取るようになりました

    $ pfswatch lib/ -e echo Hello, world

監視するパスを与えない場合はカレントディレクトリが監視対象になります。
指定のコマンドを実行後はまた監視状態に戻ります