summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-12-01 22:42:54 -0500
committerJesse Luehrs <doy@tozt.net>2021-12-01 22:42:54 -0500
commit7e29679b6208380e37aa70a8511f6f42922eaa8e (patch)
tree2ba29f7187480681c87b0b488e19a142fb288eed
parentd8ca5eca153208f30e91ec821ed0acfcc410c273 (diff)
downloadadvent-of-code-7e29679b6208380e37aa70a8511f6f42922eaa8e.tar.gz
advent-of-code-7e29679b6208380e37aa70a8511f6f42922eaa8e.zip
make setting up a new day easier
-rwxr-xr-xbin/setup5
-rwxr-xr-xbin/stub-code19
-rw-r--r--src/2020/mod.rs2
-rw-r--r--src/2021/mod.rs2
4 files changed, 28 insertions, 0 deletions
diff --git a/bin/setup b/bin/setup
new file mode 100755
index 0000000..5894743
--- /dev/null
+++ b/bin/setup
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -eu
+
+./bin/stub-code "$@"
+./bin/get-input "$@"
diff --git a/bin/stub-code b/bin/stub-code
new file mode 100755
index 0000000..aa65af8
--- /dev/null
+++ b/bin/stub-code
@@ -0,0 +1,19 @@
+#!/bin/sh
+set -eu
+
+day=${1:-$(date +%-d)}
+year=${2:-$(date +%Y)}
+
+mkdir -p src/"$year"/"$day"
+cat >src/"$year"/"$day"/mod.rs <<EOF
+pub fn part1() -> anyhow::Result<i64> {
+ todo!()
+}
+
+pub fn part2() -> anyhow::Result<i64> {
+ todo!()
+}
+EOF
+
+perl -pi -E"\$seen_mod = 1 if /mod day$day/; if (!\$seen_mod && /NEXT MOD/) { say '#[path = \"$day/mod.rs\"]'; say 'mod day$day;'; }" src/"$year"/mod.rs
+perl -pi -E"\$seen_part = 1 if /day$day::part/; if (!\$seen_part && /NEXT PART/) { say ' ($day, 1) => day$day::part1(),'; say ' ($day, 2) => day$day::part2(),'; }" src/"$year"/mod.rs
diff --git a/src/2020/mod.rs b/src/2020/mod.rs
index 77a5c38..7a41d7c 100644
--- a/src/2020/mod.rs
+++ b/src/2020/mod.rs
@@ -16,6 +16,7 @@ mod day7;
mod day8;
#[path = "9/mod.rs"]
mod day9;
+// NEXT MOD
pub fn run(day: u8, puzzle: u8) -> anyhow::Result<i64> {
match (day, puzzle) {
@@ -37,6 +38,7 @@ pub fn run(day: u8, puzzle: u8) -> anyhow::Result<i64> {
(8, 2) => day8::part2(),
(9, 1) => day9::part1(),
(9, 2) => day9::part2(),
+ // NEXT PART
_ => Err(anyhow::anyhow!("unknown puzzle {}-{}", day, puzzle)),
}
}
diff --git a/src/2021/mod.rs b/src/2021/mod.rs
index 61d61a9..6103c97 100644
--- a/src/2021/mod.rs
+++ b/src/2021/mod.rs
@@ -1,10 +1,12 @@
#[path = "1/mod.rs"]
mod day1;
+// NEXT MOD
pub fn run(day: u8, puzzle: u8) -> anyhow::Result<i64> {
match (day, puzzle) {
(1, 1) => day1::part1(),
(1, 2) => day1::part2(),
+ // NEXT PART
_ => Err(anyhow::anyhow!("unknown puzzle {}-{}", day, puzzle)),
}
}