@@ -1,21 +1,28 @@
1+{-# LANGUAGE DeriveDataTypeable, RecordWildCards #-}
1import Network.Wai.Application.Static
2import Network.Wai.Application.Static
2 ( StaticSettings (..), staticApp, defaultMimeTypeByExt, defaultListing
3 ( StaticSettings (..), staticApp, defaultMimeTypeByExt, defaultListing
4import Network.Wai.Handler.Warp (run)
5import Network.Wai.Handler.Warp (run)
5import System.Environment (getArgs)
6import System.Environment (getArgs)
7+import System.Console.CmdArgs
10+ { docroot :: FilePath
11+ , index :: [FilePath]
15+ deriving (Show, Data, Typeable)
17+defaultArgs = Args "." ["index.html", "index.htm"] 3000 False
7main :: IO ()
19main :: IO ()
21+ Args {..} <- cmdArgs defaultArgs
9 args <- getArgs
22 args <- getArgs
10− (folder, port) <- return $
14− [f, p] -> (f, read p)
15− _ -> error "Usage: warp-static [root [port]]"
16 run port $ staticApp StaticSettings
23 run port $ staticApp StaticSettings
17− { ssFolder = folder
24+ { ssFolder = docroot
18− , ssIndices = ["index.html", "index.htm"]
25+ , ssIndices = if noindex then [] else index
19 , ssListing = Just defaultListing
26 , ssListing = Just defaultListing
20 , ssGetMimeType = return . defaultMimeTypeByExt
27 , ssGetMimeType = return . defaultMimeTypeByExt