Improve example to include shebang line
[p5sagit/App-FatPacker.git] / lib / App / FatPacker.pm
index b643d3a..e4ca0aa 100644 (file)
@@ -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<fatpack> script itself for more information.
 
@@ -254,7 +266,23 @@ Matt S. Trout (mst) <mst@shadowcat.co.uk>
 
 =head2 CONTRIBUTORS
 
-None as yet, though I probably owe lots of people thanks for ideas. Yet
+miyagawa - Tatsuhiko Miyagawa (cpan:MIYAGAWA) <miyagawa@bulknews.net>
+
+tokuhirom - MATSUNO★Tokuhiro (cpan:TOKUHIROM) <tokuhirom@gmail.com>
+
+dg - David Leadbeater (cpan:DGL) <dgl@dgl.cx>
+
+gugod - 劉康民 (cpan:GUGOD) <gugod@cpan.org>
+
+t0m - Tomas Doran (cpan:BOBTFISH) <bobtfish@bobtfish.net>
+
+sawyer - Sawyer X (cpan:XSAWYERX) <xsawyerx@cpan.org>
+
+ether - Karen Etheridge (cpan:ETHER) <ether@cpan.org>
+
+Mithaldu - Christian Walde (cpan:MITHALDU) <walde.christian@googlemail.com>
+
+Many more people are probably owed thanks for ideas. Yet
 another doc nit to fix.
 
 =head1 COPYRIGHT