{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TupleSections #-} module Main (main) where import qualified Data.Text.Lazy as TL import Prelude import System.Environment (getArgs) import qualified Hcompta.CLI.Args as Args import qualified Hcompta.CLI.Command as Command import qualified Hcompta.CLI.Context as C import qualified Hcompta.CLI.Lang as Lang import qualified Hcompta.CLI.Write as Write import qualified Hcompta.Lib.Leijen as W import Hcompta.Lib.Leijen ((<>)) main :: IO () main = do (c, cmds) <- do c <- C.context getArgs >>= Args.parse c Command.usage Command.options . (c,) case cmds of cmd:args -> Command.run c cmd args [] -> Command.usage c >>= Write.fatal c . ((C.translate c Lang.Error_One_command_is_required <> W.line) <>) . W.text . TL.pack