on master help sign in
Slightly improve error message for bad input to elm-doc, fix #886
6260cccEvan Czaplicki
src/Docs.hs+12−1
@@ -9,6 +9,7 @@ import System.IO
9
9
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 ()
55main =
56main =
56 do flags <- cmdArgs defaultFlags
57 do flags <- cmdArgs defaultFlags
57− source <- readFile (input flags)
58+ let inputFileName = input flags
59+
60+ exists <- doesFileExist inputFileName
61+ when (not exists) $
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 ++ "'"
66+ exitFailure
67+
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