rackup ワンライナー

Rack::Server を使う限り、Rack::Builder.parse_file が実行されて下記のいずれかのファイルが必要になる様子。

  • /\.ru$/ にマッチするファイル
  • require 可能なファイル(basename.capitalize に該当する Rack アプリが期待されている)

結局、素直に config.ru を作るのがすっきりしてて良さそうです。

以下、--eval オプションを勘違いして config.ru 代わりに使える物だと思ってた頃の思い出。

$ rackup -e"open('config.ru','w'){|o|o<<%Q|run Rack::Directory.new('.')|};END{File.unlink 'config.ru'}"

もはやワンライナーですらない。

cat <<EOF | rackup -e"open('config.ru','w'){|o|o<<STDIN.read};END{File.unlink 'config.ru'}"
run Rack::Directory.new('.')
EOF

そんなときもありました…。