#!/home/grinnz/projects/cpandoc-browser/perls/5.38.2/bin/perl use App::FatPacker -run_script; =head1 NAME fatpack - Command line frontend for App::FatPacker =head1 COMMANDS =head2 pack $ fatpack pack myscript.pl > myscript.packed.pl A shortcut to do all the work of tracing, collecting packlists, extracting modules in fatlib, then concatenating into a packed script - in one shot. If you need more detailed controls for additional modules, use the following commands separately (see L). =head2 trace $ fatpack trace [--to=trace-file|--to-stderr] [--use=MODULE] myscript.pl Compiles myscript.pl (as in "perl -c") and writes out a trace file containing every module require()d during the compilation. The trace file is called 'fatpacker.trace' by default; the --to option overrides this. If you pass --to-stderr fatpack writes the trace to STDERR instead. You cannot pass both --to and --to-stderr. If the --use option specifies a module (or modules, if used multiple times) those modules will be additionally included in the trace output. =head2 packlists-for $ fatpack packlists-for Module1 Module2 Module3 Searches your perl's @INC for .packlist files containing the .pm files for the modules requested and emits a list of unique packlist files to STDOUT. These packlists will, in a pure cpan-installation environment, be all non-core distributions required for those modules. Unfortunately most vendors strip the .packlist files so if you installed modules via e.g. apt-get you may be missing those modules; installing your dependencies into a L first is the preferred workaround. =head2 tree $ fatpack tree fatlib packlist1 packlist2 packlist3 Takes a list of packlist files and copies their contents into a tree at the requested location. This tree should be sufficient to 'use lib' to make available all modules provided by the distributions whose packlists were specified. =head2 file $ fatpack file Recurses into the 'lib' and 'fatlib' directories and bundles all .pm files found into a BEGIN block which adds a virtual @INC entry to load these files from the bundled code rather than disk. =head1 RECIPES Current basic recipe for packing: $ fatpack trace myscript.pl $ fatpack packlists-for `cat fatpacker.trace` >packlists $ fatpack tree `cat packlists` $ fatpack file myscript.pl >myscript.packed.pl =head1 COPYRIGHT, LICENSE, AUTHOR See the corresponding sections in L. =cut