You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1 KiB
Bash

#!/bin/bash
PARENT_DIR=$(dirname $PWD)
YEAR=${PARENT_DIR##*/}
DAY_RAW=${PWD##*/}
DAY=$((10#${DAY_RAW//[^0-9]/}))
SESSION_KEY=$(cat ~/.aocrc)
echo "Fetching ${YEAR} ${DAY}"
echo $SESSION_KEY
URL_DAY="https://adventofcode.com/${YEAR}/day/${DAY}"
URL_INPUT="$URL_DAY/input"
mkdir -p input
echo -e "$URL_DAY\n" > README.md
curl -b session=$SESSION_KEY $URL_DAY | sed -n '/<article class="day-desc">/,/<\/article>/p' | html2markdown --mark-code >> README.md
curl -b session=$SESSION_KEY $URL_INPUT > input/input
cat README.md
echo "Extracting example code blocks..."
# extract example code blocks
cat README.md |
sed -n '/\[code\]/,/\[\/code\]/p' | # extract code blocks
sed 's/^ //' | # remove indentation
sed '/\[code\]/{n;/^$/d}' | # remove blank lines after opening bracket
tac | # reverse line order
sed '/\[\/code\]/{n;/^$/d}' | # remove blank lines after closing brackets (preceding blank lines in normal order)
tac | # reverse line order again
sed '/^\[\/code\]/d' | # remove closing brackets
csplit - --suppress-matched --elide-empty-files --prefix='input/example' --suffix='%d' '/\[code\]/' '{*}'
echo "done."
echo
echo "Visit: $URL_DAY"