Skip to content

Instantly share code, notes, and snippets.

@vanitasvitae
Created January 19, 2020 22:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vanitasvitae/daa5f4b6ad5cde53cac1f3e2494538e4 to your computer and use it in GitHub Desktop.
Save vanitasvitae/daa5f4b6ad5cde53cac1f3e2494538e4 to your computer and use it in GitHub Desktop.
Script for updating matterbridge
#!/bin/sh
if [ $# -eq 0 ]
then
echo "Usage: update-matterbridge <version>"
exit 1
fi
VERSION=$1
REPO_URL=https://github.com/42wim/matterbridge
BINARY_NAME=matterbridge-$VERSION-linux-64bit
CHECKSUMS=checksums.txt
CHECKSUMS_ASC=$CHECKSUMS.asc
RELEASES_URL=$REPO_URL/releases/download
VERSION_URL=$RELEASES_URL/v$VERSION
BINARY_URL=$VERSION_URL/$BINARY_NAME
CHECKSUMS_URL=$VERSION_URL/$CHECKSUMS
CHECKSUMS_ASC_URL=$VERSION_URL/$CHECKSUMS_ASC
SIGNING_KEY=CC7D978417C1AEA1E4CDD7240E41AB4BF4C610B4
BINARY_DEST=/opt
LINK_NAME=/usr/local/bin/matterbridge
SERVICE_NAME=matterbridge
SERVICE_USER=bridge
# Check if key is present in gpg store
gpg --batch --list-key $SIGNING_KEY
if [ $? -ne 0 ]
then
echo "Signing key $SIGNING_KEY not found. Try to receive it."
gpg --batch --yes --trust-model always --keyserver pgp.mit.edu --recv-keys $SIGNING_KEY
if [ $? -ne 0 ]
then
echo "Could not receive signing key."
exit 1
fi
fi
echo "Signing key found."
echo "Fetch checksum files..."
cd $(mktemp -d)
wget -q --show-progress $CHECKSUMS_ASC_URL
wget -q --show-progress $CHECKSUMS_URL
echo "Verify Signature."
gpg --verify ./$CHECKSUMS_ASC ./$CHECKSUMS
if [ $? -ne 0 ]
then
echo "Invalid Signature!"
exit 1
fi
echo "Valid Signature!"
echo "Dowload release..."
wget -q --show-progress $BINARY_URL
echo $PWD
sha256sum --ignore-missing -c ./$CHECSUMS
if [ -ne $? ]
then
echo "Checksum Mismatch!"
exit 1
fi
echo "Stopping service."
sudo service matterbridge stop
echo "Fix file permissions."
sudo chown $SERVICE_USER $BINARY_NAME
sudo chmod +x $BINARY_NAME
echo "Move new release to $BINARY_DEST."
sudo mv $BINARY_NAME $BINARY_DEST/.
echo "Update link"
sudo ln -sf $BINARY_DEST/$BINARY_NAME $LINK_NAME
echo "Restart service."
sudo service matterbridge start
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment