#!/home/janweb/www/hugs/bin/runhugs +l
-- Hey, Emacs, this is -*- haskell -*-
-- A simple "interactive" script Erik Meijer ([email protected])
module Main (main) where
import CGI
import Maybe(fromMaybe)
top_level :: String -> String
top_level = reverse . fst . break (== '.') . reverse
greetings :: String
greetings = "greetings.txt"
readGreetings :: IO [(String,String)]
readGreetings = catch (readFile greetings >>= readIO)
(\e -> return [("edu", "Hi there!"),
("de", "Hallo, Deutschland!")])
hello :: [(Name,Value)] -> IO (CgiOut HTML)
hello env = do
greetings <- readGreetings
let site = fromMaybe "unknown REMOTE_HOST" (lookup "REMOTE_HOST" env)
greeting = fromMaybe "Hello World!" (lookup (top_level site) greetings)
return Content{mime = page greeting [] [prose greeting], cookies=[] }
main :: IO ()
main = wrapper hello