8 my $class = Module::Build->subclass(
9 class => 'MovableTypePluginManagerBuilder',
17 # no warning on ACTION_distdir
18 $_[0]->{metafile} = 'MANIFEST';
20 # Don't add MEATA.yml to MANIFEST
22 $_[0]->{metafile} = 'MANIFEST',
23 $_[0]->SUPER::ACTION_manifest(@_);
26 my $p = $_[0]->{properties};
29 File::Spec->catdir($p->{base_dir}, 'extlib'),
30 File::Spec->catdir($p->{base_dir}, '../../lib'),
31 File::Spec->catdir($p->{base_dir}, '../../extlib'),
34 $_[0]->SUPER::ACTION_test(@_);
39 my $dist_dir = $self->dist_dir;
40 $self->depends_on('distdir');
41 print "Creating $dist_dir.zip\n";
42 system("zip -r $dist_dir.zip $dist_dir") == 0 or die $?;
43 $self->delete_filetree($dist_dir);
49 $_[0]->SUPER::ACTION_distdir(@_);
51 my $dist_dir = $self->dist_dir;
52 rename($dist_dir, $self->{properties}{dist_name});
56 my $plugins = File::Spec->catfile($dist_dir, 'plugins');
57 mkpath($plugins, 1, 0755);
59 my $new_dist_dir = File::Spec->catfile(
60 $plugins, $self->{properties}{dist_name}
62 rename($self->{properties}{dist_name}, $new_dist_dir);
64 foreach my $f (glob(File::Spec->catfile($new_dist_dir, 'COPYING'))) {
65 rename($f, File::Spec->catfile($dist_dir, basename($f)));
68 if (my @statics = glob(File::Spec->catfile($new_dist_dir, 'static/*'))) {
69 my $static = File::Spec->catfile(
70 $dist_dir, 'mt-static/plugins'
72 mkpath($static, 1, 0755);
74 my $d = File::Spec->catfile(
75 $static, $self->{properties}{dist_name}
79 foreach my $f (@statics) {
80 rename($f, File::Spec->catfile($d, basename($f)));
83 rmdir(File::Spec->catfile($new_dist_dir, 'static'));
86 if (my @tools = glob(File::Spec->catfile($new_dist_dir, 'tools/*'))) {
87 my $tool = File::Spec->catfile(
90 mkpath($tool, 1, 0755);
92 foreach my $f (@tools) {
93 rename($f, File::Spec->catfile($tool, basename($f)));
96 rmdir(File::Spec->catfile($new_dist_dir, 'tools'));
102 my $yaml_string = do {
103 open(my $fh, File::Spec->catfile(dirname(__FILE__), 'config.yaml'));
107 $yaml_string =~ s/^(\s*)\*/$1App::\*/gm;
108 my $yaml = Load($yaml_string);
110 my $builder = $class->new(
111 dist_name => $yaml->{name},
112 dist_author => 'Movable Type Plugin Manager Project',
113 dist_version => $yaml->{version},
114 module_name => $yaml->{name} . '::App',
116 add_to_cleanup => [ $yaml->{name} . '-*' ],
119 $builder->create_build_script();