packages feed

gipeda-0.1: src/GraphReport.hs

{-# LANGUAGE DeriveGeneric, OverloadedStrings #-}
module GraphReport where

import Control.Monad
import qualified Data.Map as M
import qualified Data.ByteString.Lazy as BS
import qualified Data.Text as T
import Data.Aeson
import GHC.Generics

import Paths
import ReadResult
import ReportTypes

graphReportMain :: [String] -> IO ()
graphReportMain (bench:revs) = do
    g <- forM revs $ \rev -> do
        m <- readCSV rev
        let v = M.lookup bench m
        return $ T.pack rev .= object
            [ "benchResults" .= object
                [ T.pack bench .= object
                    [ "value" .= v ]
                ]
            ]
    let doc = object ["revisions" .= object g]

    BS.putStr (encode doc)