#!/usr/bin/env bash
set -euo pipefail

program_name="<PLACEHOLDER>"
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)

### prep
workdir=$(mktemp -d)
built_dir=${COMPILED_DIR:-/compiled}/$program_name
mkdir -p $built_dir
apt update && apt install curl jq -y

### check whether it's up-to-date
version_file=$built_dir/version
touch $version_file
version=$(curl 'https://api.github.com/repos/<PLACEHOLDER_AUTHOR>/<PLACEHOLDER_REPO>/releases/latest' | jq '.tag_name' -r)
if grep -q $version $version_file; then
    echo "already up to date, exiting"
    exit
fi

### get source and build
# get build deps
apt install <PLACEHOLDER >-y # zstd is for archive creation

cd $workdir
curl -L $(curl 'https://api.github.com/repos/<PLACEHOLDER_AUTHOR>/<PLACEHOLDER_REPO>/releases/latest' | jq '.tarball_url' -r) -o $program_name-$version.tar.gz
tar -xzf $program_name-$version.tar.gz
src_dir=$(find $(pwd) -name "maximbaz-wluma*")
cd $src_dir
cargo install --path .

### create .tar.zst archive
# prep
cd $src_dir
$archive_dir=$(mktemp -d)
cp $(which wluma) $archive_dir
cp <PLACEHOLDER >$archive_dir

# actually create it and finish up
cd $archive_dir
tar --zstd -cf $built_dir/$program_name.tar.zst .
echo $version >$version_file

echo "$program_name updated to $version"