Plack::Handler::CLI - Command line interface to PSGI applications
This document describes Plack::Handler::CLI version 0.05.
#!perl -w # a cat(1) implementation on PSGI/CLI use strict; use Plack::Handler::CLI; use URI::Escape qw(uri_unescape); sub err { my(@msg) = @_; return [ 500, [ 'Content-Type' => 'text/plain' ], \@msg, ]; } sub main { my($env) = @_; my @files = split '/', $env->{PATH_INFO}; local $/; my @contents; if(@files) { foreach my $file(@files) { my $f = uri_unescape($file); open my $fh, '<', $f or return err("Cannot open '$f': $!\n"); push @contents, readline($fh); } } else { push @contents, readline($env->{'psgi.input'}); } return [ 200, [ 'Content-Type' => 'text/plain'], \@contents, ]; } my $handler = Plack::Handler::CLI->new(need_headers => 0); $handler->run(\&main);
Plack::Handler::CLI is a PSGI handler which provides a command line interface for PSGI applications.
Plack::Handler::CLI->new(%options)
Creates a Plack handler that implements a command line interface.
PSGI headers will be printed by default, but you can suppress them by need_headers => 0.
need_headers => 0
$cli->run(\&psgi_app, @argv) : Void
Runs &psgi_app with @argv.
"--key" => "value" (or "--key=value") pairs in @argv are packed into QUERY_STRING, while any other arguments are packed into PATH_INFO, so &psgi_app can get command line arguments as PSGI parameters. The first element of @argv after the query parameters could also be a absolute URL.
"--key" => "value"
"--key=value"
QUERY_STRING
PATH_INFO
Perl 5.8.1 or later.
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.
PSGI
Plack
Goro Fuji (gfx) <gfuji(at)cpan.org>
Copyright (c) 2011, Goro Fuji (gfx). All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic for details.
To install Plack::Handler::CLI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Plack::Handler::CLI
CPAN shell
perl -MCPAN -e shell install Plack::Handler::CLI
For more information on module installation, please visit the detailed CPAN module installation guide.