#!/usr/bin/env bash
set -euo pipefail

# Zig's package manager rejects a resolv.conf without a trailing newline.
if [[ -s /etc/resolv.conf ]] && [[ -n "$(tail -c 1 /etc/resolv.conf)" ]]; then
    printf '\n' | sudo tee -a /etc/resolv.conf >/dev/null
fi

# Match the Zig version used by CI.
zig_version=0.17.0
zig_dir="/opt/zig-x86_64-linux-$zig_version"
if [[ ! -x "$zig_dir/zig" ]]; then
    archive="$(mktemp)"
    trap 'rm -f "$archive"' EXIT
    curl -fsSL "https://ziglang.org/download/$zig_version/zig-x86_64-linux-$zig_version.tar.xz" -o "$archive"
    echo "1cbe9df9f27e6b78d14ccbca43b6703a404ef79ef1c463de901d7f088d4e2026  $archive" | sha256sum -c -
    sudo tar -xJf "$archive" -C /opt
fi
sudo ln -sfn "$zig_dir/zig" /usr/local/bin/zig
