ccchh-website/fetch-calendar.sh
June eab3b281c0 fetch-calendar: Make script also work on (most) Linux systems
Do this by adding an OS type check and also adding the relevant date
commands for Linux.
Also check for OS type FreeBSD, since the script should work on there,
if it works on Darwin.
2023-10-21 23:59:28 +02:00

25 lines
850 B
Bash
Executable file

#!/bin/sh
set -eu
ICAL_URL=https://cloud.hamburg.ccc.de/remote.php/dav/public-calendars/6CJcM7XDfoYire5d
OUTFILE=data/calendar.json
# See here for uname -s outputs: https://en.wikipedia.org/wiki/Uname#Examples
OS_TYPE=$(uname -s)
if [ "$OS_TYPE" = "Linux" ]; then
START_TIME=$(date --date="-1 day" +%s) # yesterday
END_TIME=$(date --date="+1 month" +%s) # now + 1 month
elif [ "$OS_TYPE" = "Darwin" ] || [ "$OS_TYPE" = "FreeBSD" ]; then
START_TIME=$(date -v-1d +%s) # yesterday
END_TIME=$(date -v+1m +%s) # now + 1 month
else
echo "ERROR: Unsupported OS type"
return 1
fi
mkdir -p $(dirname $OUTFILE)
echo "loading calendar file..."
curl -s $ICAL_URL\?export\&accept=jcal\&expand\=1\&start\=$START_TIME\&end\=$END_TIME | jq '.[2]|map({_type:.[0]}+(.[1]|map({key:.[0],value:.[3]})|from_entries))' > $OUTFILE
echo "...done"