{-# LANGUAGE DeriveDataTypeable #-} module Config where import System.Console.CmdArgs data Config = Get { repos :: [String] } | Run { fast :: Bool , cold :: Bool , only :: [String] , dump :: Bool , extra :: [String] } | Dist { repo :: FilePath } deriving (Show, Data, Typeable) defaultConfig :: [Mode Config] defaultConfig = [ mode $ Get { repos = [] &= args & typ "REPONAME" } , mode $ Run { fast = False &= text "Exclude the most time-consuming benchmarks" , cold = False &= text "Try to flush VM caches between iterations" , dump = False &= text "Produce machine-readable output on stdout" , only = [] &= text "Only run benchmarks with one of these substrings in their names" & typ "BENCHMARK" , extra = [] &= args & typ "BINARY" } , mode $ Dist { repo = "" &= argPos 0 & typ "DIRECTORY" } ]