Perl Advent Calendar 24 日目の 2 記事目です(厳密)

カジュアルに HTTP サーバを建てるコマンド PAD の紹介をします。 Plack::App::Directory の略です。

数年前 YAPC の LT-THON で話しただけで文字起こししていなかったネタですが、一部界隈では細々と使われているようです。

使い方

使い方は至って簡単で、インストールして起動するだけです。

$ cpanm PAD
$ pad
HTTP::Server::PSGI: Accepting connections at http://0:5000/

これでカレントティレクトリ以下がポート 5000 でサーブされるようになります。ポートを変えたい場合は次のように。

$ pad Static --port 8080

プラグイン

プラグインを実装すれば特定のファイルに処理をかませたレスポンスを返せます。

デフォルトで Markdown Plugin が入っているのでこれを真似て実装すれば、

  • 画像リサイジングロジックの結果をブラウザで確認
  • shipit 直前の POD のレンダリング結果確認(これは実装しておけばよかった)

などなど夢がひろがりんぐですね。

インターフェイス

CLI のインターフェイスの悪さがあって、変えたいと思いつつも解決策が思いつかないのでいい感じなインターフェイス作れそうならぜひパッチください。

  • プラグインをひとつしか読み込めない
  • プラグインにオプション渡しにくい

あたりを解決できたら嬉しい感じ。

まとめ

plackup -MPlack::App::Directory -e 'Plack::App::Directory->new->to_app' よりタイピング量 95% 減で便利。

ちなみに PAD と何の関係もないですが、 データベースのコネクション管理は DBIx::Handler がロバストな実装になっているのでおすすめです。

明日は大取り @songmu さんによる神エントリーです。