X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FApp%2FFatPacker.pm;h=e4ca0aa7ee8b0dc46ff3900473ebad4302af1cca;hb=24b4367ec49fb45ad0a6200d4062799fafcf5ee8;hp=b643d3a2bd362d546efdfd5f6bb9376e5f8be6f8;hpb=75b0b05695b1845872338484e059725050e79d8f;p=p5sagit%2FApp-FatPacker.git diff --git a/lib/App/FatPacker.pm b/lib/App/FatPacker.pm index b643d3a..e4ca0aa 100644 --- a/lib/App/FatPacker.pm +++ b/lib/App/FatPacker.pm @@ -9,11 +9,12 @@ use File::Find qw(find); use File::Spec::Functions qw( catdir splitpath splitdir catpath rel2abs abs2rel ); +use File::Spec::Unix; use File::Copy qw(copy); use File::Path qw(mkpath rmtree); use B qw(perlstring); -our $VERSION = '0.009008'; # 0.9.8 +our $VERSION = '0.009013'; # 0.9.013 $VERSION = eval $VERSION; @@ -84,7 +85,7 @@ sub script_command_trace { } my $arg = do { if ($to_stderr) { - "=&STDERR" + ">&STDERR" } elsif ($file) { ">>${file}" } @@ -192,9 +193,10 @@ sub script_command_file { find(sub { return unless -f $_; !/\.pm$/ and warn "File ${File::Find::name} isn't a .pm file - can't pack this and if you hoped we were going to things may not be what you expected later\n" and return; - $files{abs2rel($File::Find::name,$dir)} = do { + $files{File::Spec::Unix->abs2rel($File::Find::name,$dir)} = do { local (@ARGV, $/) = ($File::Find::name); <> }; + close ARGV; }, $dir); } my $start = stripspace <<' END_START'; @@ -208,6 +210,14 @@ sub script_command_file { unshift @INC, sub { if (my $fat = $fatpacked{$_[1]}) { + if ($] < 5.008) { + return sub { + return 0 unless length $fat; + $fat =~ s/^([^\n]*\n?)//; + $_ = $1; + return 1; + }; + } open my $fh, '<', \$fat or die "FatPacker error loading $_[1] (could be a perl installation issue?)"; return $fh; @@ -227,6 +237,8 @@ sub script_command_file { print join "\n", $start, @segments, $end; } +=encoding UTF-8 + =head1 NAME App::FatPacker - pack your dependencies onto your script file @@ -236,7 +248,7 @@ App::FatPacker - pack your dependencies onto your script file $ fatpack trace myscript.pl $ fatpack packlists-for `cat fatpacker.trace` >packlists $ fatpack tree `cat packlists` - $ (fatpack file; cat myscript.pl) >myscript.packed.pl + $ (head -n1 myscript.pl |grep '^#!'; fatpack file; cat myscript.pl) >myscript.packed.pl See the documentation for the L script itself for more information. @@ -254,7 +266,23 @@ Matt S. Trout (mst) =head2 CONTRIBUTORS -None as yet, though I probably owe lots of people thanks for ideas. Yet +miyagawa - Tatsuhiko Miyagawa (cpan:MIYAGAWA) + +tokuhirom - MATSUNO★Tokuhiro (cpan:TOKUHIROM) + +dg - David Leadbeater (cpan:DGL) + +gugod - 劉康民 (cpan:GUGOD) + +t0m - Tomas Doran (cpan:BOBTFISH) + +sawyer - Sawyer X (cpan:XSAWYERX) + +ether - Karen Etheridge (cpan:ETHER) + +Mithaldu - Christian Walde (cpan:MITHALDU) + +Many more people are probably owed thanks for ideas. Yet another doc nit to fix. =head1 COPYRIGHT