#!/bin/sh
# Get new Firefox version release notes
# By The Free Thinker, 2025. gopher://aussies.space/1/~freet/
#
# URLs (un-comment for your release branch):
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Regular Releases
#URL=https://www.mozilla.org/firefox/notes/
# ESR Releases
URL=https://www.mozilla.org/firefox/organizations/notes/
# Beta Releases
#URL=https://www.mozilla.org/firefox/beta/notes/

wget -q -O /tmp/ffversion.htm "$URL"

if [ -s /tmp/ffversion.htm ]
then
 HTM="`cat /tmp/ffversion.htm`"
else
 echo "Release notes download failed"
 rm -f /tmp/ffversion.htm
 exit 1
fi

# Scrape latest version number
VER="`expr \"$HTM\" : '.*<span class="c-release-version">\([^<]*\)'`"

# Check if it's a new release
if [ "`cat ~/.fflatest.version 2>/dev/null`" != "$VER" ]
then
 echo -n "$VER" > ~/.fflatest.version
else
 exit
fi

# Scrape new release data
DATE="`expr \"$HTM\" : '.*<p class="c-release-date">\([^<]*\)'`"
NOTES="`expr \"$HTM\" : '.*<section class="c-release-notes">\(.*\)'`"
NOTES="${NOTES%%</section>*}"
SECURITY="`expr \"$HTM\" : '.*<a href="https://www.mozilla.org/.*/*security/advisories/\([^"]*\)'`"

# Convert release notes to plain text
NOTES="`echo \"$NOTES\" | sed -e 's/<[^>]*>//g' -e 's/[[:space:]]*$//' | cat -s`"

# Output new release message
echo "Subject: Firefox Release $VER

Firefox $VER released on $DATE.

Release Notes:
https://www.mozilla.org/firefox/$VER/releasenotes/
$NOTES

Security Advisories:
https://www.mozilla.org/security/advisories/$SECURITY
"

rm /tmp/ffversion.htm