blob: 8e36c28d01772f41c0307fd43ab64089d311f79c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
open Aoc
open Utils
let () =
let args = Sys.argv in
let day = args.(1) in
let input_file = Printf.sprintf "inputs/%s.in" day in
if not @@ Caml.Sys.file_exists input_file then
download_input day input_file ;
let file = In_channel.open_text input_file in
let inputs = In_channel.input_all file in
let (module Day : Day.S) =
match day with
| "1" -> (module Day1)
| "2" -> (module Day2)
| "3" -> (module Day3)
| "4" -> (module Day4)
| "5" -> (module Day5)
| "6" -> (module Day6)
| "7" -> (module Day7)
| "8" -> (module Day8)
| "9" -> (module Day9)
| "10" -> (module Day10)
| "11" -> (module Day11)
| "12" -> (module Day12)
| "13" -> (module Day13)
| "14" -> (module Day14)
| "15" -> (module Day15)
| "16" -> (module Day16)
| "17" -> (module Day17)
| "18" -> (module Day18)
| "19" -> (module Day19)
| "20" -> (module Day20)
| "21" -> (module Day21)
| "22" -> (module Day22)
| "23" -> (module Day23)
| "24" -> (module Day24)
| "25" -> (module Day25)
| _ -> failwith "invalid day"
in
Day.run inputs ; In_channel.close file
|