{-# 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" ] 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]