{-|
Module      : ITEA
Description : Main program to run ITEA with a configuration file.
Copyright   : (c) Fabricio Olivetti de Franca, 2020
License     : GPL-3
Maintainer  : fabricio.olivetti@gmail.com
Stability   : experimental
Portability : POSIX

Main program to run ITEA with a configuration file.
-}
module Main where

import Data.Char
import System.Environment

import RunCrossVal
import RunConfig

parse :: [String] -> IO  ()
parse :: [String] -> IO ()
parse (String
mode:[String]
cs)
  | (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower String
mode String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"config"   = [String] -> IO ()
parseConfigFile [String]
cs
  | (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
toLower String
mode String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"crossval" = [String] -> IO ()
runCrossVal [String]
cs
parse [String]
_                            = String -> IO ()
putStrLn String
"Usage: ./itea {config/crossval} {config-file-name/dataset fold}"

main :: IO ()
main :: IO ()
main = IO [String]
getArgs IO [String] -> ([String] -> IO ()) -> IO ()
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= [String] -> IO ()
parse