module Main where
import Chronos.Bench
import Parser
import Control.Applicative
import Options.Applicative
type Arguments = (Config, [String])
main :: IO ()
main = uncurry defaultMainWith . fmap (map (benchShell <*> id)) =<< execParser opts
where
opts = info (arguments <**> helper)
( fullDesc <> header "chronos - a tool to comparatively benchmark programs with lazy precision" )
arguments :: Parser Arguments
arguments
= liftA2 (,) (configParser Config)
$ liftA2 (:)
( argument str (metavar "COMMAND"))
( many (argument str (metavar "COMMAND")))