#!/bin/bash

DOCKER="docker"

set -eu -o pipefail

${DOCKER} build --platform linux/amd64 -t libbpf-sys-builder - <<'EOF'
FROM ubuntu:jammy AS libbpf-sys-builder

ENV LANG=C.UTF-8 \
    LC_ALL=C.UTF-8

VOLUME /usr/local/src/libbpf-sys
WORKDIR /usr/local/src/libbpf-sys

SHELL ["/bin/bash", "-eu", "-o", "pipefail", "-c"]

RUN \
	export DEBIAN_FRONTEND=noninteractive; \
	apt-get -q update; \
	apt-get -q install -y curl build-essential zlib1g-dev libelf-dev libclang-dev llvm clang pkg-config; \
	apt-get -q clean autoclean;

RUN \
	curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable;

ENTRYPOINT \
	source $HOME/.cargo/env; \
	cargo build --features bindgen-source --release --verbose;
EOF

${DOCKER} run --platform linux/amd64 --rm -v "$(pwd):/usr/local/src/libbpf-sys" libbpf-sys-builder
