mirror of
https://github.com/cupcakearmy/advent-of-code.git
synced 2024-12-21 15:46:28 +00:00
85 lines
1.6 KiB
Markdown
85 lines
1.6 KiB
Markdown
# 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`](https://github.com/jondot/hygen). This will bootstrap code for python and rust. See details about the specifica languages below
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# Once
|
|
bun run 2022/01/typescript/main.ts
|
|
|
|
# Rerun on change
|
|
bun run --watch 2022/01/typescript/main.ts
|
|
```
|
|
|
|
### Python
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
cargo bench --bin 2022-01
|
|
```
|
|
|
|
Benchmark all days:
|
|
|
|
```bash
|
|
cargo bench
|
|
```
|
|
|
|
> The benchmark is the built in Rust one. This is the [reason](https://doc.rust-lang.org/cargo/commands/cargo-bench.html) for the _nightly_ version.
|