NAME Plack::App::Libarchive - Serve an archive via libarchive as a PSGI web app VERSION version 0.02 SYNOPSIS use Plack::App::Libarchive; my $app = Plack::App::Libarchive->new( archive => 'foo.tar.tz' )->to_app; DESCRIPTION This PSGI application serves the content of an archive (any format supported by libarchive via Archive::Libarchive). A request to the root for the app will return an index of the files contained within the archive. The index is generated using Template. There is a bundled template that will list the entry files and link to their content. If you want to customize the index you can provide your own template. Here are the template variables that are available from within the template: archive A hash reference containing information about the archive archive.name The basename of the archive filename. For example: foo.tar.gz. archive.get_next_entry Get the next Archive::Libarchive::Entry object from the archive. Here is the default wrapper.html.tt: <!doctype html> <html> <head> <meta charset="utf-8" /> <title>[% archive.name %]</title> </head> <body> [% content %] </body> </html> and the default archive_index.html.tt <ul> [% WHILE (entry = archive.get_next_entry) %] <li><a href="[% entry.pathname | uri %]">[% entry.pathname | html %]</a></li> [% END %] </ul> CONFIGURATION archive The relative or absolute path to the archive. tt Instance of Template that will be used to generate the html index. The default is: Template->new( WRAPPER => 'wrapper.html.tt', INCLUDE_PATH => File::ShareDir::Dist::dist_share('Plack-App-Libarchive'), DELIMITER => ':', render_die => 1, TEMPLATE_EXTENSION => '.tt', ENCODING => 'utf8', ) On MSWin32 a delimiter of ; is used instead. tt_include_path Array reference of additional Template INCLUDE_PATH directories. This id useful for writing your own custom template. SEE ALSO Archive::Libarchive Plack PSGI AUTHOR Graham Ollis <plicease@cpan.org> COPYRIGHT AND LICENSE This software is copyright (c) 2022 by Graham Ollis. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.