#!/bin/bash today() { echo "Going to today" TODAYDIR="$AOCROOT/$CURRYEAR/day$CURRDAY" if [ ! -d $TODAYDIR ]; then echo "> Doesn't exist, making" mkdir $TODAYDIR fi echo "> cd $TODAYDIR" cd $TODAYDIR } getsharelink() { echo "Getting share path" YR=$CURRYEAR DY=$CURRDAY PWD=$(pwd) PWD=${PWD#$AOCROOT/} if [[ "$PWD" =~ ^[1-9][0-9]{3}/day[0-2][0-9]$ ]]; then YR=${PWD:0:4} DY=${PWD:5:5} DY=${DY/day/} fi echo "https://git.bullercodeworks.com/brian/adventofcode/src/branch/main/$YR/day$DY/main.go" } getproblem() { YR=$CURRYEAR DY=$CURRDAY PWD=$(pwd) PWD=${PWD#$AOCROOT/} if [[ "$PWD" =~ ^[1-9][0-9]{3}/day[0-2][0-9]$ ]]; then YR=${PWD:0:4} DY=${PWD:5:5} DY=${DY/day0/} DY=${DY/day/} fi cd "$AOCROOT/$YR/day$DY" if [[ -f "problem" ]]; then echo "Found problem file." if [[ $1 != "-f" ]]; then # Check if the file already exists echo "Not forcing overwrite." exit 1 fi fi # Remove any zero padding from day DY=$(echo "$CURRDAY"|awk '$0*=1') echo "Getting problem at $CURRYEAR/day/$DY" # elinks -dump https://adventofcode.com/$CURRYEAR/day/$DY > problem vim problem } getsessiontoken() { FULLCOOKIE=$(grep "adventofcode" $HOME/.elinks/cookies) if [[ ! -n "$FULLCOOKIE" ]]; then echo "Error pulling elinks cookie" exit 1 fi echo $FULLCOOKIE | cut -d" " -f2 } help() { echo "Usage: aoc [option]" echo "Available Options:" echo "" echo " getproblem - Retrieve the problem for the day associated with the current directory" echo " If the current directory isn't a specific problem (\d\d\d\d/day\d\d/)" echo " then it changes to today's directory, making it if needed" echo "" echo " getsessiontoken - Echo the session token from the elinks cookie file" echo "" echo " getsharelink - Get the repo remote path for the main.go file in the current directory" echo " If the current directory isn't a specific problem (\d\d\d\d/day\d\d/)" echo " then it uses today's directory" echo "" echo " help - Display this message" echo "" } case $1 in "getproblem") getproblem $2 ;; "getsessiontoken") getsessiontoken ;; "getsharelink") getsharelink ;; *) help ;; esac