Module::Setupを試してみる

2009年1月 1日
| コメント(0) | トラックバック(1) Module::Setupを試してみる

Module::Starter(::PBP)を試したが、残念な結果に終わったので、次に手を出すことにした。
Module::Setupです。

参考
YappoLogs: Module::Setup - pmsetupをモジュール化した

StrawberryPerlをインストールしているので、cpanからさっくりとインストールを試してみます。

C:\> cpan -i Module::Setup

依存モジュールのModule::Collectのテストでこけました。
が、とりあえず強制的に入れました。

C:\> cpan -f Module::Collect

この後、もう一度試しましたが、結局テストでこけたので、またも強制インストール。

C:\> cpan -f Module::Setup

本来はあまりよくないでしょうが、Windowsという環境下でもあるので、ある程度は気にしません。
C:\strawberry\perl\binにmodule-setup.batができていましたので、おそらく問題ないでしょう。

無事(?)インストールできたということで、開発者のブログの解説を見ながら簡単に使ってみます。

まずは、Module::Setupならではのflavor機能を使ってみます。

C:\home\nqou> module-setup --init
Creating *****\.module-setup\flavors\default\template\Makefile.PL
Creating *****\.module-setup\flavors\default\template\t\00_compile.t
Creating *****\.module-setup\flavors\default\template\xt\01_podspell.t
Creating *****\.module-setup\flavors\default\template\xt\02_perlcritic.t
Creating *****\.module-setup\flavors\default\template\xt\03_pod.t
Creating *****\.module-setup\flavors\default\template\xt\perlcriticrc
Creating *****\.module-setup\flavors\default\template\Changes
Creating *****\.module-setup\flavors\default\template\lib\____var-module_path-var____.pm
Creating *****\.module-setup\flavors\default\template\MANIFEST.SKIP
Creating *****\.module-setup\flavors\default\template\README
Creating *****\.module-setup\flavors\default\template\.shipit
Creating directory *****\.module-setup\flavors\default\additional
Dump config *****\.module-setup\flavors\default\additional\config.yaml
Creating directory *****\.module-setup\flavors\default\plugins
Creating directory *****\.module-setup\flavors\default\template
Do you use SVN? [yN] [n] y
You chose version control system: SVN
Do you use SVK? [yN] [n]
Do you use Git? [yN] [n]
Your name:  [Default Name]
Your email:  [default {at} example.com]
Dump config *****\.module-setup\flavors\default\config.yaml

module-setupのオプションに「--init」をつけることでホームディレクトリ(ここでは消しましたが、C:\Documents and Settings\ユーザー名)に.module-setupというフォルダができ、その中のflavorsフォルダの中にflavor名で展開されます。
途中、名前と電子メールとバージョン管理に関するいくつかの設定を訊かれます。
名前や電子メールは作成するモジュールの雛形に書き込まれます。
バージョン管理は、今のところsvnだけは使って(というか、使おうとして)いるので、svnだけyにしました。

flavorができたところで、これに基づいてモジュールのスケルトンを作っていきます。

C:\home\nqou> module-setup My::Module
[1]: default
[2]: dmake
[3]: xs
Select flavor: [1] 1
You chose flavor: default
Subversion friendly? [Yn]  [y]
Creating directory My-Module\trunk
Creating directory My-Module\tags
Creating directory My-Module\branches
Creating directory My-Module\trunk
Creating My-Module\trunk\.shipit
Creating My-Module\trunk\Changes
Creating My-Module\trunk\Makefile.PL
Creating My-Module\trunk\MANIFEST.SKIP
Creating My-Module\trunk\README
Creating My-Module\trunk\lib\My\Module.pm
Creating My-Module\trunk\t\00_compile.t
Creating My-Module\trunk\xt\01_podspell.t
Creating My-Module\trunk\xt\02_perlcritic.t
Creating My-Module\trunk\xt\03_pod.t
Creating My-Module\trunk\xt\perlcriticrc
Check Makefile.PL? [Yn]  [y] n

flavorがいくつかある場合は、どのflavorを使うか選択画面が出ます。
svnを使う設定にしていると、subversionと相性がいいようにディレクトリを作ってくれます。

最後に、Makefile.PLをチェックするか聞いてきますが、defaultだと、makeコマンドが「make」になってしまうので、チェックはスキップします。

このあたりはプラグインでどうにかなります。
makeコマンドをStrawberryPerl仕様の「dmake.exe」に変更するためにpluginを作成しました。
そうやって作ったflavorが(既に出てきましたが)「dmake」です。

.module-setup\flavors\dmake\plugins\Test\Dmake.pm

package Module::Setup::Plugin::Test::Dmake;
use strict;
use warnings;
use base 'Module::Setup::Plugin';
 
sub register {
    my($self, ) = @_;
    $self->add_trigger( check_skeleton_directory => \&check_skeleton_directory );
}
 
sub check_skeleton_directory {
    my $self = shift;
    return unless $self->dialog("Check Makefile.PL? [Yn] ", 'y') =~ /[Yy]/;
 
    !$self->system('perl',  'Makefile.PL') or die $?;
    !$self->system('dmake', 'test')        or die $?;
    !$self->system('dmake', 'manifest')    or die $?;
    !$self->system('dmake', 'distclean')   or die $?;
}
 
1;

pluginを作ったら、configも変更する必要があります。

.module-setup\flavors\dmake\config.yaml

---
author: Default Name
email: 'default {at} example.com'
plugins:
  - Config::Basic
  - Template
  - Test::Dmake
  - Additional
  - VC::SVN


まあ、スケルトンはこんな感じでうまくいきました。
問題は中身ですが、それはこれから…。


ちなみに、「xs」のflavorは以下のページの物を使いました。
作るわけではありませんが、flavorの使い方に慣れるためにやってみました。

参考
XSモジュール用のModule::Setupのflavorを作った - Clouder::Blogger

トラックバック(1)

このブログ記事に対するトラックバックURL:

このブログ記事を参照しているブログ一覧:

前にインストールした時は適当に強制インストールしたので、今回はテストに失敗する様... 続きを読む

コメントする

Google検索

Last.fm

このブログ記事について

このページは、のぶりんが2009年1月 1日 22:12に書いたブログ記事です。

ひとつ前のブログ記事は「jqueryFileTree.plを作ってみた」です。

次のブログ記事は「うるう秒の瞬間」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type