{-# LANGUAGE LambdaCase #-} module Main where import Lib import Print import qualified Days.D01 as D01 import qualified Days.D02 as D02 import qualified Days.D03 as D03 import System.Environment (getArgs) solutions :: [(Int, Day, FilePath)] solutions = [ (1, D01.day, "./data/01.in") , (2, D02.day, "./data/02.in") , (3, D03.day, "./data/03.in") ] runAll :: [(Int, Day, FilePath)] -> IO () runAll = mapM_ (\(dayNum, day, path) -> run day path >>= printDR dayNum) header :: IO () header = putStrLn "[ Day ]------(1)-----+------(2)----" usage :: IO () usage = putStrLn "./Main" main :: IO () main = getArgs >>= \case ["all"] -> header >> runAll solutions _ -> header >> runAll [last solutions]