@@ -9,6 +9,7 @@ import System.IO
10import Control.Applicative ((<$>))
10import Control.Applicative ((<$>))
11import Control.Arrow (second)
11import Control.Arrow (second)
12+import Control.Monad (when)
12import qualified Data.Aeson.Encode.Pretty as Json
13import qualified Data.Aeson.Encode.Pretty as Json
13import qualified Data.ByteString.Lazy.Char8 as BS
14import qualified Data.ByteString.Lazy.Char8 as BS
14import qualified Data.Map as Map
15import qualified Data.Map as Map
@@ -54,7 +55,17 @@ defaultFlags = Flags
54main :: IO ()
55main :: IO ()
56 do flags <- cmdArgs defaultFlags
57 do flags <- cmdArgs defaultFlags
57− source <- readFile (input flags)
58+ let inputFileName = input flags
60+ exists <- doesFileExist inputFileName
62+ do hPutStrLn stderr $
63+ if null inputFileName
64+ then "Error: you must provide a file to document!"
65+ else "Error: could not find a file named '" ++ inputFileName ++ "'"
68+ source <- readFile inputFileName
58 case Parse.iParse documentation source of
69 case Parse.iParse documentation source of
59 Right docs ->
70 Right docs ->
60 let json = Json.encodePretty' config docs in
71 let json = Json.encodePretty' config docs in