blob: a676a183b67466fbe8f2b58c50ca418b8e4f2778 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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 ()
|