Files
aoctools/aoc-cacheclear
2025-12-20 11:43:28 +01:00

58 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
AOC_DIR="${AOC_DIR:-$HOME/.aoc}"
CACHE_DIR="$AOC_DIR/cache"
usage() {
pname=$(basename "$0")
echo "Usage: $pname <year> <day?>" >&2
echo " $pname all"
exit 1
}
verify_int() {
if ! [[ "$1" =~ ^[0-9]+$ ]]; then
echo "'$1' is not an integer" >&2
usage
fi
}
if [ $# -gt 2 ] || [ $# -lt 1 ]; then
usage
fi
if [ "$1" = all ]; then
if [ ! -d "$CACHE_DIR" ]; then
echo "No cache present" >&2
exit 1
fi
echo "Clearing full cache" >&2
rm -rf "$CACHE_DIR"
exit
fi
year="$1"
verify_int "$year"
year_cache_dir="$CACHE_DIR/$year"
if [ $# -eq 1 ]; then
if [ ! -d "$year_cache_dir" ]; then
echo "No cache for $year present" >&2
exit 1
fi
echo "Clearing cache for year $year" >&2
rm -rf "$year_cache_dir"
exit
fi
day="$2"
verify_int "$day"
cache_file=$year_cache_dir/d$day.in
if [ ! -f "$cache_file" ]; then
echo "No cache for $year day $day present"
exit 1
fi
echo "Clearing cache for $year day $day" >&2
rm $cache_file