#!/usr/bin/env bash
set -e

# Always operate from the parent directory
cd /var/www/thefurrycollective.ca/public_html/

# Detect installed version
installed_version=$(cat element/version)

# Detect latest version
latest_version=$(curl -4 -sL https://api.github.com/repos/vector-im/element-web/releases/latest \
    | grep '"tag_name"' | head -n 1 | cut -d '"' -f 4 | sed 's/^v//')

echo "DEBUG latest_version='$latest_version'"
echo "Installed: $installed_version"
echo "Latest:    $latest_version"

if [ "$installed_version" = "$latest_version" ]; then
    echo "Already up to date"
    exit 0
fi

# Download tarball
curl -4 -sL "https://github.com/vector-im/element-web/releases/download/v$latest_version/element-v$latest_version.tar.gz" -o element.tgz

# Validate
if ! tar -tf element.tgz >/dev/null 2>&1; then
    echo "Downloaded file is not a valid tar archive"
    file element.tgz
    exit 1
fi

# Extract
tar -xf element.tgz

# Copy config from current install
cp element/config.json element-v$latest_version/

# Swap directories
rm -rf element.old
mv element element.old
mv element-v$latest_version element

rm -f element.tgz

# Reload Nginx
sudo nginx -t
sudo systemctl reload nginx
sudo chown -R user:user element

echo "Updated to $latest_version"
