gipeda-0.3: src/gipeda.hs
import System.Environment
import System.IO
import System.Directory
import Control.Monad
import Shake
import JsonSettings
import RevReport
import WithLatestLogs
import Summary
import GraphReport
import BenchNames
import GraphSummaries
import GHC.IO.Encoding
{-
We want to build everything into one executable, bit still treat
it as multiple tools. Hence the main function
here calls the various real main functions, defaulting to the shake tool.
-}
main :: IO ()
main = do
-- Make us locale-independent
setLocaleEncoding utf8
args <- getArgs
ex <- doesFileExist "gipeda.yaml"
unless ex $ do
hPutStr stderr "Please run this from the same directory as the gipeda.yaml file.\n"
case args of
"JsonSettings":_ -> jsonSettingsMain
"Summary":opts -> summaryMain opts
"RevReport":opts -> revReportMain opts
"BranchReport":opts -> branchReportMain opts
"GraphReport":opts -> graphReportMain opts
"WithLatestLogs":opts -> withLatestLogsMain opts
"BenchNames":opts -> benchNamesMain opts
"GraphSummaries":opts -> graphSummaries opts
_ -> shakeMain -- shake will take the arguments from getArgs