45 lines
1.3 KiB
Bash
Executable file
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"
|