{-# LANGUAGE OverloadedStrings #-}
module Bricoleur
( main
, Opt.getOpts
) where
import qualified System.Exit as Sys
import qualified Bricoleur.Config as Conf
import qualified Bricoleur.Opts as Opt
import qualified Bricoleur.Commands.Splice as Cmd
import qualified Bricoleur.Commands.Test as Cmd
-- | Run the main @bricoleur@ function with the provided options.
main :: Opt.Options -> IO ()
main opts = do
configMb <- Conf.getConfig (Opt.optFile opts)
config <- case configMb of
Left err -> Sys.die err
Right x -> return x
case Opt.optCommand opts of
Opt.Test -> Cmd.runTest config opts
Opt.Splice -> Cmd.runSplice config opts