summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJasper Van der Jeugt <m@jaspervdj.be>2012-05-31 15:49:57 +0200
committerJasper Van der Jeugt <m@jaspervdj.be>2012-05-31 15:49:57 +0200
commit8e3603bd5e314171659b4a0db10f21dd8c6b555a (patch)
tree79f974f2f7a23b5d2c8953f7ea244c763ab9de4c
parent153502289ab8884ea05626dfc65b8b55e6b09405 (diff)
downloadstylish-haskell-8e3603bd5e314171659b4a0db10f21dd8c6b555a.tar.gz
Error when config file can't be parsed
-rw-r--r--src/StylishHaskell/Config.hs15
-rw-r--r--stylish-haskell.cabal1
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: