gipeda-0.1: src/BenchNames.hs
{-# LANGUAGE OverloadedStrings #-}
module BenchNames where
import qualified Data.ByteString.Lazy as BS
import Data.Aeson
import Control.Monad
import qualified Data.Map as M
import qualified Data.Text as T
import Data.List
import Paths
import JsonUtils
import ReportTypes
import qualified BenchmarkSettings as S
benchNamesMain :: [S.BenchName] -> IO ()
benchNamesMain benchNames = do
settings <- S.readSettings "settings.yaml"
let groups =
map (uncurry BenchGroup) $
sort $
M.toList $
M.map sort $
M.fromListWith (++)
[ (S.group s, [bn])
| bn <- benchNames
, let s = S.benchSettings settings bn
]
let doc = emptyGlobalReport { benchGroups = Just groups }
BS.putStr (encode doc)