cavif/compilation.sh
2025-03-06 13:09:47 -06:00

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"