module Conferer.Source.Dhall where
import qualified Data.Text.IO as Text
import Dhall
import Dhall.JSON
import System.Directory (doesFileExist)
import Conferer.Source.JSON
import Conferer.Source.Files
import Conferer.Source.Null
import Conferer.Types
mkDhallSource :: SourceCreator
mkDhallSource config = do
filePath <- getFilePathFromEnv config "dhall"
fileExists <- doesFileExist filePath
if fileExists
then do
fileContent <- Text.readFile filePath
dahllExpr <- inputExpr fileContent
case dhallToJSON dahllExpr of
Right jsonConfig -> do
mkJsonSource' jsonConfig config
Left compileError -> error (show compileError)
else do
mkNullSource config