diff --git a/README.asciidoc b/README.asciidoc index d29a2cd..8073434 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -1,8 +1,37 @@ = Advent of Code -My solutions to the https://adventofcode.com[Advent of Code] challenges. +My solutions to the https://adventofcode.com[Advent of Code] challenges in Go. == Mirrors - **Code Flow (Forgejo)**: https://codeflow.dananglin.me.uk/apollo/advent-of-code - **GitHub**: https://github.com/dananglin/advent-of-code + +== How to run the solutions + +1. Download and install Go if you don't have it installed already. + +2. The provided bash script can be used to run the solution to an AoC challenge. ++ +.... +$ ./solve --help +USAGE: + ./solve [options] + +SUMMARY: + Run the solution for the specified Advent of Code challenge + +OPTIONS: + -h, --help: + print this help message + + -y, --year: + specify the year + + -d, --day: + specify the day of the advent calendar +.... + +3. Run the script specifying the year and the day of the advent calendar to view the result of that day's challenge. + + ./solve --year 2023 --day 1 diff --git a/solve b/solve new file mode 100755 index 0000000..3b59358 --- /dev/null +++ b/solve @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +set -o errexit +set -o nounset +set -o pipefail + +function usage { + echo "USAGE:" + echo " $0 [options]" + echo "" + echo "SUMMARY:" + echo " Run the solution for the specified Advent of Code challenge" + echo "" + echo "OPTIONS:" + echo " -h, --help:" + echo " print this help message" + echo "" + echo " -y, --year:" + echo " specify the year" + echo "" + echo " -d, --day:" + echo " specify the day of the advent calendar" +} + +while [[ $# -gt 0 ]]; do + arg="$1" + case $arg in + -h|--help) + usage + exit 0 + ;; + -y|--year) + YEAR=$2 + shift + shift + ;; + -d|--day) + DAY=$2 + shift + shift + ;; + *) + shift + ;; + esac +done + +if [[ -z "${YEAR+x}" ]]; then + echo "ERROR: please specify the year." + echo "" + usage + exit 1 +fi + +if [[ -z "${DAY+x}" ]]; then + echo "ERROR: please specify the day." + echo "" + usage + exit 1 +fi + +go run "./${YEAR}/day-${DAY}"