読者です 読者をやめる 読者になる 読者になる

taketoncheir.log

Like the Decatoncheir by Poseidon Industrial, This blog is Yet Another Storage for My Long Term Memories.

Scotty、起動

軽くWebアプリ作ろうと思い、Scottyに触れてみることにしました。

Scotty (github)

使用環境

  • MacOS 10.6.8
  • Haskell-platform2012.4.0.0
  • Scotty 0.4.6
  • cabal-dev 0.9.1, cabal 1.14.0

起動まで

とりあえずソースコードをclone。

$ git clone git://github.com/xich/scotty.git

(追記:Cabal-1.18のSandbox機能により、cabal-devはもう使わなくてもいいかもしれません)
まずCabalリポジトリ本体を壊したくないので、.cabalファイルがあるディレクトリでcabal-devコマンドを使用することで依存パッケージをsandboxで配置(cabal-devはcabal-devソース本体をチェックアウトしてcabal installすれば大抵パスが通って使えるはず。cabalはupdateしろと警告されるがしないほうがいい。cabal-dev ghciが使えなくなるのでデバッグ作業ができなくなる)。

$ cd scotty
$ cabal-dev install --only-dependencies

これで、依存パッケージが./cabal-dev/lib以下に入った。
その構成は、./cabal-dev/packages-7.4.1.conf以下で示される。

Scotty (github)にあるように素直に

$ runghc examples/basic.hs

とすると、wai-extraがないよと怒られる。

cabal-dev/libの中にいることを教えてあげる。

$ runghc -package-conf=cabal-dev/packages-7.4.1.conf examples/basic.hs

すると(port 3000)で立ち上がるので、http://localhost:3000/にアクセス。
foobarって見えたヽ(*´∀`)ノ キャッホーイ!!

実行ファイルを作りたければ、

$ ghc -package-conf=cabal-dev/packages-7.4.1.conf examples/basic.hs

でexamples以下にbasicが出来ている。

広告を非表示にする