diff --git a/aoc/src/dev/ctsk/aoc/Main.scala b/aoc/src/dev/ctsk/aoc/Main.scala index a001965..da3c996 100644 --- a/aoc/src/dev/ctsk/aoc/Main.scala +++ b/aoc/src/dev/ctsk/aoc/Main.scala @@ -10,18 +10,26 @@ val solvers = Map[Int, Solver]( 5 -> Day05 ) -@main def main(day: String, input: String): Unit = - solvers.get(day.toInt) match - case Some(solver) => - val (timings, solution) = solver.run(os.pwd / input) - sys.env.get("AOC_BENCH") match - case Some(_) => - println(solution.p1) - println(solution.p2) - case None => - println(f"Preprocessing: ${timings.prep}%24s μs") - println(f"Part 1: ${solution.p1}%15s ${timings.p1}%15s μs") - println(f"Part 2: ${solution.p2}%15s ${timings.p2}%15s μs") - +def runSolver(solver: Solver, input: os.Path): Unit = + val (timings, solution) = solver.run(input) + sys.env.get("AOC_BENCH") match + case Some(_) => + println(solution.p1) + println(solution.p2) case None => - println(s"Day $day not solved") + println(f"Preprocessing: ${timings.prep}%24s μs") + println(f"Part 1: ${solution.p1}%15s ${timings.p1}%15s μs") + println(f"Part 2: ${solution.p2}%15s ${timings.p2}%15s μs") + +@main def main(day: String, input: String): Unit = + val num = """(\d+)""".r + day match + case "all" => + solvers.foreach { case (day, solver) => + runSolver(solver, os.pwd / os.RelPath(input) / f"$day%02d.in") + } + case num(_) => + solvers.get(day.toInt) match + case Some(solver) => runSolver(solver, os.pwd / os.RelPath(input)) + case None => println(s"Day $day not solved") + case _ => println(day) diff --git a/build.mill b/build.mill index 5c55d8b..99ae93f 100644 --- a/build.mill +++ b/build.mill @@ -4,7 +4,7 @@ import mill._, scalalib._ object aoc extends ScalaModule { def scalaVersion = "3.5.2" - // def ivyDeps = Agg( - // ivy"org.scala-lang.modules::scala-parallel-collections:1.0.4" - // ) + def ivyDeps = Agg( + ivy"com.lihaoyi::os-lib:0.11.3" + ) } \ No newline at end of file