summaryrefslogtreecommitdiff
path: root/lib/SlackBuilder/Trans.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SlackBuilder/Trans.hs')
-rw-r--r--lib/SlackBuilder/Trans.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/SlackBuilder/Trans.hs b/lib/SlackBuilder/Trans.hs
index dea0d4b..f5697e1 100644
--- a/lib/SlackBuilder/Trans.hs
+++ b/lib/SlackBuilder/Trans.hs
@@ -10,6 +10,7 @@ module SlackBuilder.Trans
) where
import Control.Monad.Trans.Reader (ReaderT(..), asks)
+import Data.ByteString (ByteString)
import Data.Text (Text)
import qualified Data.Text as Text
import SlackBuilder.Config
@@ -20,11 +21,14 @@ import System.FilePath ((</>))
import Text.URI (URI)
import qualified Text.URI as URI
import qualified Codec.Compression.Lzma as Lzma
+import Text.Megaparsec (ParseErrorBundle(..), errorBundlePretty)
+import Conduit (Void)
data SlackBuilderException
= UpdaterNotFound Text
| UnsupportedUrlType URI
| LzmaDecompressionFailed Lzma.LzmaRet
+ | MalformedInfoFile (ParseErrorBundle ByteString Void)
deriving Show
instance Exception SlackBuilderException
@@ -55,6 +59,8 @@ instance Exception SlackBuilderException
"No progress is possible"
displayException (LzmaDecompressionFailed Lzma.LzmaRetProgError) =
"Programming error"
+ displayException (MalformedInfoFile errorBundle) =
+ errorBundlePretty errorBundle
newtype SlackBuilderT a = SlackBuilderT
{ runSlackBuilderT :: ReaderT Settings IO a