|
Revision 206, 1.3 kB
(checked in by ingy, 1 year ago)
|
r3749@skinny-2: ingy | 2007-04-04 18:04:20 +0900
refo
|
- Property svn:executable set to
*
|
| Line | |
|---|
| 1 |
#!/usr/bin/perl |
|---|
| 2 |
|
|---|
| 3 |
use strict; |
|---|
| 4 |
use warnings; |
|---|
| 5 |
use Cwd qw(abs_path); |
|---|
| 6 |
use lib abs_path('lib'); |
|---|
| 7 |
use IO::All; |
|---|
| 8 |
use XXX; |
|---|
| 9 |
|
|---|
| 10 |
# Get a list of all dists in system. |
|---|
| 11 |
XXX my @dists = map { |
|---|
| 12 |
$_->name; |
|---|
| 13 |
} grep { |
|---|
| 14 |
-e "$_/lib"; |
|---|
| 15 |
} io('src')->All_Dirs; |
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
# For each dist, find all modules in dist |
|---|
| 19 |
# For each module: |
|---|
| 20 |
# Extract doc into src/docs |
|---|
| 21 |
# Extract files into src/ |
|---|
| 22 |
# Extract a template version of the module into src/lib |
|---|
| 23 |
# Create a src/Makefile to rebuild modules |
|---|
| 24 |
# Link all src files into the base/ tree |
|---|
| 25 |
# Report all collisions |
|---|
| 26 |
|
|---|
| 27 |
__END__ |
|---|
| 28 |
|
|---|
| 29 |
@ARGV == 1 or die usage(); |
|---|
| 30 |
my $dist_path = shift; |
|---|
| 31 |
$dist_path =~ s/\/*$//; |
|---|
| 32 |
my $lib = io("$dist_path/lib"); |
|---|
| 33 |
$lib->is_dir or die usage(); |
|---|
| 34 |
my @modules = grep {$_->name =~ /\.pm$/} $lib->All_Files; |
|---|
| 35 |
|
|---|
| 36 |
my $dist = io->dir("$dist_path/src")->assert->chdir; |
|---|
| 37 |
|
|---|
| 38 |
for my $module (@modules) { |
|---|
| 39 |
my $module_name = $module->name; |
|---|
| 40 |
$module_name =~ s/.*\/lib\/(.*)\.pm$/$1/ or die $module_name; |
|---|
| 41 |
$module_name =~ s/\//::/g; |
|---|
| 42 |
print ">> $module_name\n"; |
|---|
| 43 |
eval "require $module_name"; |
|---|
| 44 |
die $@ if $@ and $@ !~ /HTTP\/BrowserDetect/; |
|---|
| 45 |
next unless $module_name->can('get_packed_files_from_classes'); |
|---|
| 46 |
my $instance = $module_name->new; |
|---|
| 47 |
$instance->extract_files; |
|---|
| 48 |
} |
|---|
| 49 |
|
|---|
| 50 |
sub usage { |
|---|
| 51 |
<<'...'; |
|---|
| 52 |
usage: k2-make-src module-path |
|---|
| 53 |
|
|---|
| 54 |
examples: |
|---|
| 55 |
k2-make-src src/plugins/ingy/Kwiki-BreadCrumbs |
|---|
| 56 |
... |
|---|
| 57 |
} |
|---|