wluma/compilation.sh
2025-04-15 00:08:04 -05:00

45 lines
1.3 KiB
Bash
Executable file

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