91 lines
2.0 KiB
Bash
Executable File
91 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Open Rowing Monitor, https://github.com/laberning/openrowingmonitor
|
|
#
|
|
# Update script for Open Rowing Monitor, use at your own risk!
|
|
#
|
|
|
|
# treat unset variables as an error when substituting
|
|
set -u
|
|
# exit when a command fails
|
|
set -e
|
|
|
|
print() {
|
|
echo "$@"
|
|
}
|
|
|
|
cancel() {
|
|
print "$@"
|
|
exit 1
|
|
}
|
|
|
|
ask() {
|
|
local prompt default reply
|
|
|
|
if [[ ${2:-} = 'Y' ]]; then
|
|
prompt='Y/n'
|
|
default='Y'
|
|
elif [[ ${2:-} = 'N' ]]; then
|
|
prompt='y/N'
|
|
default='N'
|
|
else
|
|
prompt='y/n'
|
|
default=''
|
|
fi
|
|
|
|
while true; do
|
|
echo -n "$1 [$prompt] "
|
|
read -r reply </dev/tty
|
|
|
|
if [[ -z $reply ]]; then
|
|
reply=$default
|
|
fi
|
|
|
|
case "$reply" in
|
|
Y*|y*) return 0 ;;
|
|
N*|n*) return 1 ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
CURRENT_DIR=$(pwd)
|
|
SCRIPT_DIR="$( cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd )"
|
|
INSTALL_DIR="$(dirname "$SCRIPT_DIR")"
|
|
GIT_REMOTE="https://github.com/laberning/openrowingmonitor.git"
|
|
|
|
print "Update script for Open Rowing Monitor"
|
|
print
|
|
print "Checking for new version..."
|
|
|
|
cd $INSTALL_DIR
|
|
|
|
LOCAL_VERSION=$(git rev-parse HEAD)
|
|
REMOTE_VERSION=$(git ls-remote $GIT_REMOTE HEAD | awk '{print $1;}')
|
|
|
|
if [ "$LOCAL_VERSION" = "$REMOTE_VERSION" ]; then
|
|
print "You are using the latest version of Open Rowing Monitor."
|
|
else
|
|
if ask "A new version of Open Rowing Monitor is available. Do you want to update?" Y; then
|
|
print "Stopping Open Rowing Monitor..."
|
|
sudo systemctl stop openrowingmonitor
|
|
|
|
print "Fetching new version of Open Rowing Monitor..."
|
|
sudo git fetch --force origin
|
|
sudo git fetch --force --tags origin
|
|
sudo git reset --hard origin/main
|
|
|
|
print "Updating Runtime dependencies..."
|
|
sudo npm install
|
|
sudo npm run build
|
|
|
|
print "Starting Open Rowing Monitor..."
|
|
sudo systemctl start openrowingmonitor
|
|
|
|
print
|
|
print "Update complete, Open Rowing Monitor now has the following exciting new features:"
|
|
git log --reverse --pretty=format:"- %s" $LOCAL_VERSION..HEAD
|
|
fi
|
|
fi
|
|
|
|
cd $CURRENT_DIR
|