Extended the helper script to fetch the puzzle description. It will be put into a README.md. The input will now be stored into a input folder along with examples extracted from the puzzle description. Adjusted the parsing of the day from the folder name. It will now take any number that appears in the folder name. Previously: folder name must be a number, leading zeros will be stripped (e.g 01, 02). Now: there can be other characters as well (e.g day01, day02)
37 lines
958 B
Bash
Executable File
37 lines
958 B
Bash
Executable File
#!/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*$/d' | # remove empty lines
|
|
sed '/^\[\/code\]/d' | # remove closing bracket
|
|
sed 's/^ //' | # remove indentation
|
|
csplit - --suppress-matched --elide-empty-files --prefix='input/example' --suffix='%d' '/\[code\]/' '{*}'
|
|
echo "done."
|
|
|
|
echo
|
|
echo "Visit: $URL_DAY"
|