ca-store/app/Main.hs

17 lines
482 B
Haskell

module Main(main) where
import CAStore.Command (runCommand)
import CAStore.Config (finalConfig)
import CAStore.Program (Program, runProgram, getCommand)
import CAStore.Program.Storage (initialise)
import Control.Monad.IO.Class (liftIO)
main :: IO ()
main = finalConfig >>= flip runProgram defaultProgram
defaultProgram :: Program ()
defaultProgram = do
initialise
getCommand >>= \case
Nothing -> liftIO $ putStrLn "ERROR: Invalid command"
Just cmd -> runCommand cmd