Bash script to update Livepeer

As a new orchestrator, I updated livepeer for the first time today to 0.5.21
I wrote a shell script I can run every time there’s a new update which does some basic error checking.
It should work even on Windows, tho I have only tested on Linux.

Posting it here in case it helps others:

#!/bin/bash
# Update Livepeer binary from Github
# Expects bash, jq, curl, grep, sed and tar to be installed, usually available even on embedded systems
# Windows Subsystem for Linux (WSL) or Cygwin should provide every utility on Windows
set -e

# Requires you to specify _ostype and the path to the existing install in _lptdir below
# Do not append the directory created by the tar.gz like livepeer-linux-amd64 or livepeer-windows-amd64

### User config starts

_ostype=linux # Either 1) darwin 2) windows 3) linux
_lptdir=/home/strykar/.bin/livepeer

### User config ends


_curdir=$_lptdir/livepeer-$_ostype-amd64

_curver=$($_curdir/livepeer -version \
	| sed -n 's/^Livepeer Node Version: \([^-]*\).*$/\1/p')

_newver=$(curl -sL https://api.github.com/repos/livepeer/go-livepeer/releases/latest \
	| jq -r '.assets[].browser_download_url' \
	| grep -F -e $_ostype)

url="$_newver" ver=${url%/*} ver=${ver##*/v}; declare url ver

echo "Current Version: $_curver => New Version: $ver"

if [ "$ver" != "$_curver" ]; then
	echo "Installing $_newver"
	pushd $_lptdir > /dev/null
	curl -sLo livepeer-$_ostype-amd64.tar.gz "$_newver"
	tarball="$(find . -name "livepeer-$_ostype-amd64.tar.gz" 2>/dev/null)"
	tar -xzf "$tarball"
	
	chmod +x livepeer-$_ostype-amd64/livepeer
	popd > /dev/null
	echo ".. Upgrade complete!"

else

	echo "Latest version already installed"

fi

The latest version can be found at Upgrade Livepeer Go binaries · GitHub

7 Likes