#!/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"