#!/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

Hosted by www.Geocities.ws

1