{-# 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 Context import qualified Hcompta.CLI.Write as Write import qualified Hcompta.Lib.Leijen as W import Hcompta.Lib.Leijen ((<>)) main :: IO () main = do (context, cmds) <- do context <- Context.context getArgs >>= Args.parse context Command.usage Command.options . (context,) case cmds of cmd:args -> Command.run context cmd args [] -> Command.usage >>= Write.fatal context . ((W.text "one command is required" <> W.line) <>) . W.text . TL.pack