Files
sailing-analytics/configuration/notifyAboutEVENTupdates
T

60 lines
2.3 KiB
Bash

#!/usr/bin/env bash
# set up some constants
## Manage2Sail
M2SURL="http://manage2sail.com"
M2SEVENTID="???xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx???"
M2SACCESSTOKEN="???xyz???"
M2SSTRING=${M2SURL}"/api/public/links/event/"${M2SEVENTID}"?accesstoken="${M2SACCESSTOKEN}"&mediaType=json"
## Local JSON
LOCALJSON="/tmp/???EVENT???results.json"
LOCALJSON_OLD=$LOCALJSON.old
## Mails (each email in new line)
MAILINGLIST="/home/trac/mailinglists/???EVENT???updatemailinglist"
## Eventname
EVENTNAME="???Eventname Jahr???"
## Misc
DOSENDMAIL=false
### ROUTINE ###
# get current json from manage2sail
wget -O "$LOCALJSON" "$M2SSTRING" >/dev/null 2>&1
if [ -f "$LOCALJSON_OLD" ]; then
# results previously downloaded; now compare
# sort by manage2sail Regattas.Id
LOCALJSON_SORTED="${LOCALJSON}.sorted"
LOCALJSON_OLD_SORTED="${LOCALJSON_OLD}.sorted"
cat "$LOCALJSON" | jq -r '.Regattas|sort_by(.Name)' >"$LOCALJSON_SORTED"
cat "$LOCALJSON_OLD" | jq -r '.Regattas|sort_by(.Name)' >"$LOCALJSON_OLD_SORTED"
# filter only necessary values
LOCALJSON_FORMATTED="${LOCALJSON}.formatted"
LOCALJSON_OLD_FORMATTED="${LOCALJSON_OLD}.formatted"
cat "$LOCALJSON_SORTED" | jq -r '.[]|{Final, LastPublishedRoundName, Published, Name, ClassName, Id}|select(.Published != null)' >"$LOCALJSON_FORMATTED"
cat "$LOCALJSON_OLD_SORTED" | jq -r '.[]|{Final, LastPublishedRoundName, Published, Name, ClassName, Id}|select(.Published != null)' >"$LOCALJSON_OLD_FORMATTED"
# diff sorted+formatted json
diff -q "$LOCALJSON_OLD_FORMATTED" "$LOCALJSON_FORMATTED"
if [ "$?" != "0" ]; then
echo "Found diff between $LOCALJSON_OLD_FORMATTED and $LOCALJSON_FORMATTED
`diff -q "$LOCALJSON_OLD_FORMATTED" "$LOCALJSON_FORMATTED"`
Sending mail."
DOSENDMAIL=true
fi
fi
if [ "$DOSENDMAIL" = "true" ]; then
echo "`date` Sending mail to `cat "$MAILINGLIST"`"
echo "$LOCALJSON has changed. Consider re-importing results for $EVENTNAME. Differences:
------------------
`diff -U 6 "$LOCALJSON_OLD_FORMATTED" "$LOCALJSON_FORMATTED"`
------------------
To unsubscribe, change $MAILINGLIST on `hostname`." | mail -s "SAP result import update: $EVENTNAME" `cat "$MAILINGLIST" | grep -v "^#"`
fi
# move to old
mv "$LOCALJSON" "$LOCALJSON_OLD"
# clean up temporary files
rm -rf "$LOCALJSON_SORTED" "$LOCALJSON_OLD_SORTED" "$LOCALJSON_FORMATTED" "$LOCALJSON_OLD_FORMATTED"