38 lines
910 B
Bash
Executable file
38 lines
910 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
workdir=$(mktemp -d)
|
|
built_dir=${COMPILED_DIR:-/compiled}/cavif
|
|
mkdir -p $built_dir
|
|
version_file=$built_dir/version
|
|
touch $version_file
|
|
|
|
apt update
|
|
apt install curl jq -y
|
|
|
|
# clone and check whether it's up-to-date
|
|
mkdir -p $workdir/cavif/
|
|
cd $workdir/cavif/
|
|
# check version
|
|
version=$(curl -L 'https://crates.io/api/v1/crates/cavif' | jq '.crate.default_version' -r)
|
|
if grep -q $version $version_file; then
|
|
echo "already up to date, exiting"
|
|
exit
|
|
fi
|
|
# get build deps
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
. ~/.cargo/env
|
|
apt install gcc nasm -y
|
|
|
|
# build cavif
|
|
cargo install cavif
|
|
cp ~/.cargo/bin/cavif $workdir/cavif/
|
|
|
|
# crate .tar.zst archive
|
|
cd $workdir/cavif/
|
|
mkdir -p ${COMPILED_DIR:-/compiled}/cavif/
|
|
apt install zstd -y
|
|
tar --zstd -cf $built_dir/cavif.tar.zst .
|
|
echo $version >$version_file
|
|
|
|
echo "cavif updated to $version"
|