HTMLとかの静的ファイル確認するだけのサーバー
- 2010年04月14日
- category:Perl
- Comment(0)
- Trackback(0)
HTMLとかCSSとかの静的ファイルを渡されて確認してほしいって言われたけど全部絶対パスで書かれてて確認できなかったので、そういうの見るだけのサーバー書いてみた。といってもPlack::Middleware::Staticでまるっと返してるだけだけれども。
#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long;
use Pod::Usage;
use File::Which qw/which/;
use File::Temp;
use Path::Class qw/dir/;
my $root = '.';
my $port = 5050;
my $help;
GetOptions (
'root|r=s' => \$root,
'port|p=i' => \$port,
'help|h' => \$help,
);
pod2usage() if $help;
my $root_dir = dir($root)->absolute->stringify;
print "document root: $root_dir\n";
my $app_psgi = <<'...';
use Plack::Middleware::Static;
sub {
$env = shift;
if ($env->{PATH_INFO} =~ m!/$!) {
$env->{PATH_INFO} .= 'index.html';
}
$app = Plack::Middleware::Static->new({
path => sub { 1 },
root => '%s'
});
$app->call($env);
};
...
my $fh = File::Temp->new;
print $fh sprintf($app_psgi, $root_dir);
my $plackup = which('plackup') or die 'require plackup command';
system($plackup, '-a', $fh->filename, '-p', $port, '-s', 'Standalone::Prefork');
__END__
=head1 SYNOPSIS
$ static_server [-p port] [-r root] [-h]
これにパス通せば
$ static_server
でカレントディレクトリをドキュメントルートにしたサーバーが立ち上がる。ドキュメントルートとポート番号は設定できるようにしてある。割と便利かも。
追記:と思ったらこのワンライナーでいけるぽ。
plackup -p 1978 -s Standalone::Prefork -e 'use Plack::App::Directory; Plack::App::Directory->new({root=>"."})->to_app'
- Prev Entry
- symfonyのunitテストでちょっと楽する
- Next Entry
- ウェブサイトを反転させるbookmarklet
コメントフォーム
スパムがひどいので一時的にコメントフォーム閉じます。ゴメンナサイ。
