38 lines
1.4 KiB
Makefile
38 lines
1.4 KiB
Makefile
set dotenv-load
|
|
|
|
day := `date +%d`
|
|
dayWithout0 := trim_start_match(day, "0")
|
|
year := "2022"
|
|
file := "src/bin/" + day + ".rs"
|
|
|
|
# Format, lint, and run the program for today.
|
|
run: _output-folder
|
|
rustfmt src/bin/{{day}}.rs
|
|
cargo clippy
|
|
# Hide warning here because we just ran clippy
|
|
RUSTFLAGS=-Awarnings cargo run --release --bin {{day}} | tee "output/{{day}}.log"
|
|
|
|
# Begin working on todays problem. Downloads input, creates template and opens the problem and code.
|
|
begin: _input-folder
|
|
echo "use aoc2022::*;\n\nconst INPUT: &str = include_str!(\"../../input/{{day}}\");\n\nfn main() {\n\n}" >> {{file}}
|
|
curl --silent "https://adventofcode.com/{{year}}/day/{{dayWithout0}}/input" -H "Cookie: session=$AOC_SESSION" > "input/{{day}}"
|
|
code {{file}}
|
|
open "https://adventofcode.com/{{year}}/day/{{dayWithout0}}"
|
|
|
|
# Submit a solution from the previously run program for the given level (1 or 2).
|
|
submit level:
|
|
# Find the solution and pass it to the _submit command.
|
|
just _submit {{level}} $(pcregrep -o1 "^level-{{level}}-solution=(.*)$" output/{{day}}.log)
|
|
|
|
_submit level solution:
|
|
curl --silent "https://adventofcode.com/{{year}}/day/{{dayWithout0}}/answer" \
|
|
-X "POST" \
|
|
-H "Cookie: session=$AOC_SESSION" \
|
|
--data "level={{level}}&answer={{solution}}" \
|
|
| xmllint --html --xpath "//main" - 2> /dev/null
|
|
|
|
_output-folder:
|
|
mkdir -p output
|
|
|
|
_input-folder:
|
|
mkdir -p input
|