@@ -11,27 +11,30 @@ import qualified Language.Elm as Elm
1111
1212serve :: String -> IO ()
1313serve libLoc = do
14− putStrLn "Elm Server 0.1.1.8: running at <http://localhost:8000>"
14+ putStrLn "Elm Server 0.1.2: running at <http://localhost:8000>"
1515 simpleHTTP nullConf $ do
16− compressedResponseFilter
16+ _ <- compressedResponseFilter
1717 msum [ uriRest (serveElm libLoc)
1818 , serveDirectory EnableBrowsing [] "."
1919 ]
2020
21+pageTitle :: String -> String
2122pageTitle fp =
2223 reverse . takeWhile (/='/') . drop 1 . dropWhile (/='.') $ reverse fp
2324
2425serveElm libLoc fp = do
25− let ('/':path) = fp
26− guard (".elm" `isSuffixOf` path)
27− content <- liftIO (readFile path)
28− ok . toResponse $ Elm.toHtml libLoc (pageTitle path) content
26+ let ('/':filePath) = fp
27+ guard (".elm" `isSuffixOf` filePath)
28+ content <- liftIO (readFile filePath)
29+ ok . toResponse $ Elm.toHtml libLoc (pageTitle filePath) content
2930
3031
32+main :: IO ()
3133main = getArgs >>= parse
3234
35+parse :: [String] -> IO ()
3336parse ("--help":_) = putStrLn usage
34−parse ("--version":_) = putStrLn "The Elm Server 0.1.1.7"
37+parse ("--version":_) = putStrLn "The Elm Server 0.1.2"
3538parse [] = serve "/elm-mini.js"
3639parse [arg]
3740 | "--runtime-location=" `isPrefixOf` arg =
@@ -39,10 +42,12 @@ parse [arg]
3942 | otherwise = putStrLn usageMini
4043parse _ = putStrLn usageMini
4144
45+usageMini :: String
4246usageMini =
4347 "Usage: elm-server [OPTIONS]\n\
4448 \Try `elm-server --help' for more information."
4549
50+usage :: String
4651usage =
4752 "Usage: elm-server [OPTIONS]\n\
4853 \Compiles and serves .elm files from the current directory.\n\