{-# LANGUAGE TupleSections #-}
module Main (main) where
import           Prelude
import           System.Environment (getArgs)

import qualified Hcompta.CLI.Command as Command
import qualified Hcompta.CLI.Write as Write
import qualified Hcompta.CLI.Context as Context
import qualified Hcompta.CLI.Args as Args

main :: IO ()
main = do
	(context, cmds) <- getArgs >>= Args.parse Context.nil Command.usage Command.options . (Context.nil,)
	case cmds of
	 cmd:args -> Command.run context cmd args
	 [] -> Command.usage >>= Write.fatal context . ("one command is required\n" ++)