The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/env perl
# -*- mode: perl; coding: utf-8 -*-
use strict;
use warnings qw(FATAL all NONFATAL misc);
use FindBin; BEGIN {do "$FindBin::RealBin/libdir.pl"}
#----------------------------------------
use mro qw/c3/;
use Cwd;
{
my $runner = Plack::Runner->new;
$runner->parse_options(@ARGV);
my $argv = $runner->{argv};
my $docpath = (@$argv && $argv->[0]) || cwd;
print "docpath=$docpath\n";
my $site = MY->new(doc_root => $docpath
, psgi_fallback => Plack::App::Directory->new
({root => $docpath})->to_app
);
$runner->run($site->to_app);
}
__END__
=head1 NAME
yattup - plackup alike for yatt_lite
=head1 SYNOPSIS
# run local webserver using current directory as *.yatt handler
yattup
# Use other directory, with port.
yattup --port 5050 ~/public_html
=head1 DESCRIPTION
C<yattup> is a command line utility to run F<*.yatt> files with
default L<PSGI App|YATT::Lite::WebMVC0::SiteApp>.
It relies on L<Plack::Runner>, so you can use most of its
L<options|Plack::Runner/OPTIONS> in yattup too
(except C<-e>, which requires C<app.psgi> to be given as a actual file).
=head1 SEE ALSO
L<Plack::Runner>
=cut