本を読む

読書やコンピュータなどに関するメモ

pure bashでsinatraもどきを作った

 ということで、bash内蔵コマンドだけのpure bashで、sinatraもどきのなにかを作ってみました。名付けて「sh.inatra」。あっ、pure bashといいつつrmは使っちゃいました。

 いちおうGitHubに置いておきます。あくまで見た目だけのジョークソフトなので、真面目なサーバーで使わないようにお願いします。

コードのサンプル

 サンプルはこんな感じ。

#!/bin/bash

. /opt/sh.inatra/sh.inatra.sh

get '/hello' && {
    echo 'Hello, World'
}

get '/say/*/to/*' && {
    echo Say ${params_splat[0]} to ${params_splat[1]}
}

 これをCGIとして実行すると、こんな感じ。

sh.inatraサンプル

オフラインで試す

 Rubyのcgi.rbふうに、オフラインで試す方法も用意しました。

$ sh inatra ./hello.cgi
(offline mode: enter "method uri" on standard input)
GET /say/hello/to/world
Status: 200 OK
Content-Type: text/html; charset=utf-8

Say hello to world

 「…"sh inatra"って言いたかっただけと違うか?」と思ったあなた、はい、そのとおりです。

追記2009-08-30:

 見返したらContent-Type:がおかしかったので修正(GitHubのソースも)。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/653-d1a87d0a

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad