The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

App::FilePacker - Embed a self-extracting tarball in a Perl module.

DESCRIPTION

This program allows you to pack a directory structure into a Perl module as a self-extracting tarball. The newly-created module provides an extract method that will allow you to unpack the tarball into a target directory.

SYNOPSIS

Create a module called Template::MyTemplate in the output file MyTemplate.pm, containing all of the files in /var/www/project/templates/mytemplate.

 #!/usr/bin/env perl
 use warnings;
 use strict;
 use App::FilePacker;

 App::FilePacker->new(
    name => 'Template::MyTemplate',
    out  => 'MyTemplate.pm',
    dir  => '/var/www/project/templates/mytemplate',
 )->write;

Do the same thing, from the command line:

 $ filepacker MyTemplate.pm Template::MyTemplate /var/www/project/templates/mytemplate

You can unpack the Template::MyTemplate in code:

 #!/usr/bin/env perl
 use warnings;
 use strict;
 use Template::MyTemplate;

 Template::MyTemplate::extract('./dev/templates/mytemplate');

or on the command line:

 $ perl -MTemplate::MyTemplate -e'Template::MyTemplate::extract("./dev/templates/mytemplate")'

CONSTRUCTOR

The constructor takes the following arguments:

name

The name of the module to create, used in the package declaration.

out (REQUIRED)

The file to write the module out to when write is called.

dir (REQUIRED)

The directory that will be packed, all files and directories under this directory will be packed into a tarball that is embedded in the data section of the module.

module_body

This attribute can be set to replace the body of the module if you'd like to customize the created module. Read the write function before setting this.

METHODS

write

Create the Perl module.

AUTHOR

Kaitlyn Parkhurst (SymKat) <symkat@symkat.com> ( Blog: http://symkat.com/ )

CONTRIBUTORS

SPONSORS

COPYRIGHT

Copyright (c) 2021 the App::FilePacker "AUTHOR", "CONTRIBUTORS", and "SPONSORS" as listed above.

LICENSE

This library is free software and may be distributed under the same terms as perl itself.

AVAILABILITY

The most current version of App::FilePacker can be found at https://github.com/symkat/App-FilePacker