@@ -6,22 +6,26 @@ import Network.Wai.Handler.Warp (run)
6import System.Environment (getArgs)
6import System.Environment (getArgs)
7import System.Console.CmdArgs
7import System.Console.CmdArgs
8import Text.Printf (printf)
8import Text.Printf (printf)
9+import System.Directory (canonicalizePath)
10+import Control.Monad (unless)
10data Args = Args
12data Args = Args
11 { docroot :: FilePath
13 { docroot :: FilePath
12 , index :: [FilePath]
14 , index :: [FilePath]
13 , port :: Int
15 , port :: Int
14 , noindex :: Bool
16 , noindex :: Bool
16 deriving (Show, Data, Typeable)
19 deriving (Show, Data, Typeable)
18−defaultArgs = Args "." ["index.html", "index.htm"] 3000 False
21+defaultArgs = Args "." ["index.html", "index.htm"] 3000 False False
20main :: IO ()
23main :: IO ()
22 Args {..} <- cmdArgs defaultArgs
25 Args {..} <- cmdArgs defaultArgs
26+ docroot' <- canonicalizePath docroot
23 args <- getArgs
27 args <- getArgs
24− printf "Serving directory %s on port %d with %s index files.\n" docroot port (if noindex then "no" else show index)
28+ unless quiet $ printf "Serving directory %s on port %d with %s index files.\n" docroot' port (if noindex then "no" else show index)
25 run port $ staticApp StaticSettings
29 run port $ staticApp StaticSettings
26 { ssFolder = docroot
30 { ssFolder = docroot
27 , ssIndices = if noindex then [] else index
31 , ssIndices = if noindex then [] else index