30 lines
641 B
Haskell
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
|