Advent of Code Utils

hex.pmhexdocs.pmhex.pm

Input fetching and boilerplate generation for Advent of Code.

The goal of this project is to eliminate most of the manual labor involved with working on the yearly Advent of Code challenges.

As a sample, this is the workflow you'd use when working on the challenge of the first of December 2020:

$ mix aoc
Creating code path: lib/2020/1.ex
Fetching input...
Stored input: input/2020_1.txt
Today's challenge can be found at: https://adventofcode.com/2020/day/1

Afterwards, lib/2020/1.ex will look as follows:

import AOC

aoc 2020, 1 do

  def p1 do
  end

  def p2 do
  end
end

In this generated module, you access the contents of the fetched input by using input_path(), input_string() or input_stream(). While solving your challenge, you can use the AOC.p1() and AOC.p2() helpers in iex to quickly test your solution so far.

All of this is configurable so that you can adjust this project to fit your own workflow. Check out the docs for more information!

Installation & Use

def deps do
  [
    {:advent_of_code_utils, "~> 0.1"}
  ]
end
config :advent_of_code_utils, session: "<your cookie>"

Issues

This project grew from a collection of utilities I wrote for myself when working on advent of code. I polished these utilities, but it is very likely that some bugs are still present. If you run into any issue, feel free to create an issue on GitHub.