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ができたところで、これに基づいてモジュールのスケルトンを作っていきます。
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;