advent-of-code/README.md

1.6 KiB

Advent Of Code

Template repository for Advent of Code. It automatically downloads your puzzle inputs and bootstraps files for the following languages:

  • Typescript
  • Python
  • Rust

Have fun! 🤗🎄

Getting started

New "days" are generated with hygen. This will bootstrap code for python and rust. See details about the specifica languages below

# First time setup
bun i

# Put the Advent of Code token into .env (details below)

# Generate day
bun run gen --year 2022 --day 1

Extracting the Advent of Code cookie

  1. Navigate to https://adventofcode.com/ and login.
  2. Open dev tools and copy the cookie named session.
  3. save TOKEN=<my-token> to .env.

Languages

Below are instructions for the specific handling of each language included.

Typescript

Run a single day:

# Once
bun run 2022/01/typescript/main.ts

# Rerun on change
bun run --watch 2022/01/typescript/main.ts

Python

# Get a python enabled shell, with the latest version
poetry shell

# Run once
python 2022/01/python/main.py

# Rerun on change
bunx nodemon 2022/01/python/main.py

Rust

Run a single day:

# Once
cargo run --bin 2022-01

# Rerun on change (requires: https://github.com/watchexec/cargo-watch)
cargo watch -x 'run --bin 2022-01'

Benchmark a day:

cargo bench --bin 2022-01

Benchmark all days:

cargo bench

The benchmark is the built in Rust one. This is the reason for the nightly version.