@@ -11,27 +11,30 @@ import qualified Language.Elm as Elm
12serve :: String -> IO ()
12serve :: String -> IO ()
13serve libLoc = do
13serve 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>"
15 simpleHTTP nullConf $ do
15 simpleHTTP nullConf $ do
16− compressedResponseFilter
16+ _ <- compressedResponseFilter
17 msum [ uriRest (serveElm libLoc)
17 msum [ uriRest (serveElm libLoc)
18 , serveDirectory EnableBrowsing [] "."
18 , serveDirectory EnableBrowsing [] "."
21+pageTitle :: String -> String
21pageTitle fp =
22pageTitle fp =
22 reverse . takeWhile (/='/') . drop 1 . dropWhile (/='.') $ reverse fp
23 reverse . takeWhile (/='/') . drop 1 . dropWhile (/='.') $ reverse fp
24serveElm libLoc fp = do
25serveElm libLoc fp = do
25− let ('/':path) = fp
26+ let ('/':filePath) = fp
26− guard (".elm" `isSuffixOf` path)
27+ guard (".elm" `isSuffixOf` filePath)
27− content <- liftIO (readFile path)
28+ content <- liftIO (readFile filePath)
28− ok . toResponse $ Elm.toHtml libLoc (pageTitle path) content
29+ ok . toResponse $ Elm.toHtml libLoc (pageTitle filePath) content
31main = getArgs >>= parse
33main = getArgs >>= parse
35+parse :: [String] -> IO ()
33parse ("--help":_) = putStrLn usage
36parse ("--help":_) = putStrLn usage
34−parse ("--version":_) = putStrLn "The Elm Server 0.1.1.7"
37+parse ("--version":_) = putStrLn "The Elm Server 0.1.2"
35parse [] = serve "/elm-mini.js"
38parse [] = serve "/elm-mini.js"
36parse [arg]
39parse [arg]
37 | "--runtime-location=" `isPrefixOf` arg =
40 | "--runtime-location=" `isPrefixOf` arg =
@@ -39,10 +42,12 @@ parse [arg]
39 | otherwise = putStrLn usageMini
42 | otherwise = putStrLn usageMini
40parse _ = putStrLn usageMini
43parse _ = putStrLn usageMini
42usageMini =
46usageMini =
43 "Usage: elm-server [OPTIONS]\n\
47 "Usage: elm-server [OPTIONS]\n\
44 \Try `elm-server --help' for more information."
48 \Try `elm-server --help' for more information."
47 "Usage: elm-server [OPTIONS]\n\
52 "Usage: elm-server [OPTIONS]\n\
48 \Compiles and serves .elm files from the current directory.\n\
53 \Compiles and serves .elm files from the current directory.\n\