I wrote a bash function to get my daily Advent of Code input. It
assumes that you are in a directory ending in the pattern year/day
,
where year is the year you’re doing the problems. Here’s the code
function get_advent_input() {
my_cookie="" # put your cookie here
url_path_str=$(awk -F/ '{x=$(NF)+0;print $(NF-1) " " x}' <(echo $PWD))
year=$(cut -f 1 -d" " <(echo $url_path_str))
day=$(cut -f 2 -d" " <(echo $url_path_str))
curYear=$(date +%Y)
if [[ "$day" -ge "1" ]] && [[ "$day" -le "25" ]]
then
if [[ "$year" -ge "2015" ]] && [[ "$year" -le "$curYear" ]]
then
urlPath="https://adventofcode.com/$year/day/$day/input"
echo $urlPath >&2
curl --cookie "$my_cookie" "$urlPath"
else
echo "Your dirPath doesn't match a year. CWD must be end with year/day" >&2
fi
else
echo "Your dirPath doesn't match a year. CWD must be end with year/day" >&2
fi
}
Steps to Use
- You’ll need to get your Advent of Code session id. You can extract
this by using the network inspector while in chrome, and grabbing the
value of the cookie header. It’s a rather long value.
- Set
my_cookie
to this value.
- Set
- Put this function into your
.bashrc
. - Source your updated
.bashrc
. - Run it like
~/src/2020/3 $ get_advent_input > input.txt
- Remember to redirect your output to where you want to put your program input.
- You may want to modify the curl command to automatically output to a
file, but I didn’t since I want to see the output, or use
tee
.