-- with gracious thanks to mightybyte: -- http://softwaresimply.blogspot.com/2008_02_01_archive.html module Main where import HAppS.Server import Model import Controller import Misc import System.Environment import HAppS.State import Session main = do -- let p = 5001 let usageMessage = "usage example: happs-tutorial 5001 (starts the app on port 5001)" args <- getArgs case args of [port] -> runserver (read port) otherwise -> do putStrLn usageMessage -- run the happs server on some port runserver p = do startSystemState entryPoint -- start the HAppS state system putStrLn $ "happs tutorial starting on port " ++ (show p) ++ "\n" ++ "shut down with ctrl-c" simpleHTTP (Conf {port=p}) controller -- start serving web pages where entryPoint :: Proxy TutorialState entryPoint = Proxy runInGhci = do putStrLn $ "happs tutorial running ins ghci. \n" ++ "exit :q ghci completely and reenter ghci, before restarting." runserver 5001