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
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 '/\[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
|
|
sed 's/^ //' | # remove indentation
|
|
csplit - --suppress-matched --elide-empty-files --prefix='input/example' --suffix='%d' '/\[code\]/' '{*}'
|
|
echo "done."
|
|
|
|
echo
|
|
echo "Visit: $URL_DAY"
|