{-# Language QuasiQuotes #-}
{-# Language TemplateHaskell #-}
{-# OPTIONS -fforce-recomp #-}

module FlexTask.DefaultConfig (defaultConfig) where


import Data.ByteString.UTF8 (toString)
import Data.FileEmbed (embedFileRelative)
import Text.Parsec (parse)

import FlexTask.Types (FlexConf, parseFlexConfig)




-- | Simple task configuration with textual user guide
defaultConfig :: FlexConf
defaultConfig :: FlexConf
defaultConfig = (ParseError -> FlexConf)
-> (FlexConf -> FlexConf) -> Either ParseError FlexConf -> FlexConf
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (String -> FlexConf
forall a. HasCallStack => String -> a
error (String -> FlexConf)
-> (ParseError -> String) -> ParseError -> FlexConf
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ParseError -> String
forall a. Show a => a -> String
show) FlexConf -> FlexConf
forall a. a -> a
id (Parsec String () FlexConf
-> String -> String -> Either ParseError FlexConf
forall s t a.
Stream s Identity t =>
Parsec s () a -> String -> s -> Either ParseError a
parse Parsec String () FlexConf
parseFlexConfig String
"" String
defaultFile)
  where
    defaultFile :: String
defaultFile = ByteString -> String
toString $(embedFileRelative "tasks/defaultConfig.flex")