From 12ac2354ffca7a221cb4535354eb86907bfceea7 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Thu, 22 Sep 2022 22:29:38 +0300 Subject: Initial commit --- app/Main.hs | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 app/Main.hs (limited to 'app') diff --git a/app/Main.hs b/app/Main.hs new file mode 100644 index 0000000..a676a18 --- /dev/null +++ b/app/Main.hs @@ -0,0 +1,46 @@ +module Main (main) where +import System.Environment +import Control.Monad + +import Lib + +data Config = Config { + configScriptFileName :: Maybe String, + configVerboseMode :: Bool, + configShowHelp :: Bool +} + +parseArgs :: Config -> [String] -> Config +parseArgs config args = + case args of + ("-i":fileName:rest) -> parseArgs + config { configScriptFileName = Just fileName } rest + ("-v":rest) -> parseArgs + config { configVerboseMode = True } rest + ("-h":rest) -> parseArgs + config { configShowHelp = True } rest + _ -> config + +main :: IO () +main = do + args <- getArgs + let initialConfig = Config { + configScriptFileName = Nothing, + configVerboseMode = False, + configShowHelp = False + } + + let config = parseArgs initialConfig args + + when (configVerboseMode config) $ do + putStrLn $ "configScriptFileName:\t" ++ (show $ configScriptFileName config) + putStrLn $ "configVerboseMode:\t" ++ (show $ configVerboseMode config) + + when (configShowHelp config) $ do + error "TODO help" + + case (configScriptFileName config) of + Just scriptFileName -> runScriptFile scriptFileName + Nothing -> error "TODO REPL" + + return () -- cgit v1.3