Skip to content

Instantly share code, notes, and snippets.

@Roy-Orbison
Created November 15, 2024 03:21
Show Gist options
  • Save Roy-Orbison/e7a24ad07475d8af140b6f8900efbb62 to your computer and use it in GitHub Desktop.
Save Roy-Orbison/e7a24ad07475d8af140b6f8900efbb62 to your computer and use it in GitHub Desktop.
Shell script to check for latest ESR version of Mattermost Server Team Edition, including patch releases.
#!/bin/sh
mm_hook=https://you-mm-server.example/hooks/abcdefghijklmnopqrstuvwxyz
mm_channel=@your_username
read -r latest checksum <<-EOSH
$(curl --no-progress-meter https://docs.mattermost.com/about/version-archive.html | \
tr '\r\n' ' ' | \
perl -ne 'print "$1\t$2\n" if m/<dt\b[^<]+?\bTeam\b[^<]+<[^<]+?\bESR\b(?:(?!<dt\b).)+?>\K(https:\/\/releases.mattermost.com\/[^\s<]+).*?\b([[:xdigit:]]{64})\b/'
)
EOSH
if ! [ "$latest" ]; then
echo Could not determine latest version >&2
exit 1
fi
version_current=$(sudo -u mattermost /opt/mattermost/bin/mattermost version | grep -Pio '^version:\s*\K\S+')
version_latest=$(printf '%s\n' "$latest" | grep -Po '/\K\d+\.\d+\.\d+(?=/)')
if [ "$version_current" != "$version_latest" ]; then
curl -sS --json @- "$mm_hook" <<-EOJSON > /dev/null
{
"channel": "$mm_channel",
"text": ":information_source: Mattermost upgrade available: [v$version_latest]($latest)\\nChecksum: \`$checksum\`\\n"
}
EOJSON
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment