aoc/src/AoC.hs

30 lines
641 B
Haskell

{-# LANGUAGE OverloadedStrings #-}
module AoC (
defaultMain,
) where
import AoC.Day
import AoC.Riddle
import AoC.Year
import Control.Exception qualified as Exception
import System.IO (hPutStrLn)
import System.IO.Error qualified as IOError
import AoC.Y2023 qualified as Y2023
runAoC :: (MonadIO m) => [String] -> m ()
runAoC _args = do
riddle <- loadRiddle Y2023 D01
result <- Y2023.solve D01 riddle
print result
handleError :: IOError.IOError -> IO ()
handleError e = do
hPutStrLn stderr $ "I ran into an issue: " <> show e
defaultMain :: IO ()
defaultMain = do
args <- getArgs
Exception.catch (runAoC args) handleError