1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-04 06:23:13 +03:00
juvix/app/Main.hs

23 lines
656 B
Haskell
Raw Normal View History

2022-01-18 14:25:42 +03:00
module Main (main) where
import App
2022-09-14 17:16:15 +03:00
import CommonOptions
import GlobalOptions
import Juvix.Compiler.Pipeline.Root
2022-09-14 17:16:15 +03:00
import TopCommand
import TopCommand.Options
2022-09-14 17:16:15 +03:00
main :: IO ()
main = do
let parserPreferences = prefs showHelpOnEmpty
invokeDir <- getCurrentDir
(_runAppIOArgsGlobalOptions, cli) <- customExecParser parserPreferences descr
let mbuildDir = _runAppIOArgsGlobalOptions ^? globalBuildDir . _Just . pathPath
mainFileDir <- topCommandInputFile cli
_runAppIOArgsRoots <- findRootAndChangeDir mainFileDir mbuildDir invokeDir
runFinal
. resourceToIOFinal
. embedToFinal @IO
. runAppIO RunAppIOArgs {..}
$ runTopCommand cli