diff options
author | Jasper Van der Jeugt <m@jaspervdj.be> | 2012-05-31 15:49:57 +0200 |
---|---|---|
committer | Jasper Van der Jeugt <m@jaspervdj.be> | 2012-05-31 15:49:57 +0200 |
commit | 8e3603bd5e314171659b4a0db10f21dd8c6b555a (patch) | |
tree | 79f974f2f7a23b5d2c8953f7ea244c763ab9de4c | |
parent | 153502289ab8884ea05626dfc65b8b55e6b09405 (diff) | |
download | stylish-haskell-8e3603bd5e314171659b4a0db10f21dd8c6b555a.tar.gz |
Error when config file can't be parsed
-rw-r--r-- | src/StylishHaskell/Config.hs | 15 | ||||
-rw-r--r-- | stylish-haskell.cabal | 1 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/StylishHaskell/Config.hs b/src/StylishHaskell/Config.hs index ddca5ef..d7eedd8 100644 --- a/src/StylishHaskell/Config.hs +++ b/src/StylishHaskell/Config.hs @@ -13,8 +13,8 @@ import Control.Monad (msum, mzero) import Data.Aeson (FromJSON(..)) import qualified Data.Aeson as A import qualified Data.Aeson.Types as A -import Data.Maybe (fromMaybe) -import Data.Yaml (decodeFile) +import qualified Data.ByteString as B +import Data.Yaml (decodeEither) import System.Directory import System.FilePath ((</>)) @@ -70,5 +70,12 @@ configFilePath userSpecified = do loadConfig :: Maybe FilePath -> IO Config loadConfig mfp = do mfp' <- configFilePath mfp - mc <- maybe (return Nothing) decodeFile mfp' - return $ fromMaybe defaultConfig mc + case mfp' of + Nothing -> return defaultConfig + Just fp -> do + bs <- B.readFile fp + case decodeEither bs of + Left err -> error $ + "StylishHaskell.Config.loadConfig: " ++ + "Could not load " ++ fp ++ ": " ++ err + Right config -> return config diff --git a/stylish-haskell.cabal b/stylish-haskell.cabal index 221c429..b671da0 100644 --- a/stylish-haskell.cabal +++ b/stylish-haskell.cabal @@ -60,6 +60,7 @@ Test-suite stylish-haskell-tests StylishHaskell.Stylish.LanguagePragmas.Tests StylishHaskell.Stylish.Tabs.Tests StylishHaskell.Stylish.TrailingWhitespace.Tests + StylishHaskell.Stylish.UnicodeSyntax.Tests StylishHaskell.Tests.Util Build-depends: |