{-# OPTIONS_HADDOCK hide #-}
module Trace.Hpc.Codecov.Main (main) where
import Control.Exception (throwIO)
import System.Environment (getArgs)
import Trace.Hpc.Codecov.Error
import Trace.Hpc.Codecov.Options
import Trace.Hpc.Codecov.Report
main :: IO ()
main = withBriefUsageOnError (getArgs >>= go)
where
go args =
case parseOptions args of
Right opts | optShowHelp opts -> printHelp
| optShowVersion opts -> printVersion
| optShowNumeric opts -> putStrLn versionString
| otherwise -> genReport (opt2rpt opts)
Left errs -> throwIO (InvalidArgs errs)