39 lines
758 B
Haskell
39 lines
758 B
Haskell
{-# LANGUAGE LambdaCase #-}
|
|
|
|
module Main where
|
|
|
|
import Lib
|
|
|
|
import System.Environment (getArgs)
|
|
|
|
paths :: [FilePath]
|
|
paths =
|
|
[ "./data/01.in"
|
|
, "./data/02.in"
|
|
, "./data/03.in"
|
|
, "./data/04.in"
|
|
, "./data/05.in"
|
|
, "./data/06.in"
|
|
, "./data/07.in"
|
|
, "./data/08.in"
|
|
, "./data/09.in"
|
|
, "./data/10.in"
|
|
, "./data/11.in"
|
|
]
|
|
|
|
solutions :: [(Int, Day, FilePath)]
|
|
solutions = zip3 [1 ..] (map head days) paths
|
|
|
|
runAll :: [(Int, Day, FilePath)] -> IO ()
|
|
runAll = mapM_ (\(dayNum, day, path) -> run day path >>= printDR dayNum)
|
|
|
|
usage :: IO ()
|
|
usage = putStrLn "./Main"
|
|
|
|
main :: IO ()
|
|
main =
|
|
printHeader
|
|
>> getArgs
|
|
>>= \case
|
|
["all"] -> runAll solutions
|
|
_ -> runAll [last solutions] |