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

BTFHUB_COMMIT=12d2b6bb4664b6b1d15076f8090dcb0e55696d34

TEMP_DIR=$(mktemp -up "$HOME")
trap 'rm -rf $TEMP_DIR' EXIT
ROOT_DIR=$(git rev-parse --show-toplevel)
BPF_OBJECT="${ROOT_DIR}/build/recorder.bpf.o"
BTF_DIR="${ROOT_DIR}/internal/pkg/daemon/bpfrecorder/btf"

git clone https://github.com/aquasecurity/btfhub "${TEMP_DIR}"

pushd "${TEMP_DIR}"/tools
git checkout "${BTFHUB_COMMIT}"

ARCHIVE="${TEMP_DIR}/archive"
rm -rf "${ARCHIVE}"
git clone --depth 1 https://github.com/aquasecurity/btfhub-archive "${ARCHIVE}"

bash ./extract.sh -a x86_64
bash ./extract.sh -a arm64

bash ./btfgen.sh -a x86_64 -o "${BPF_OBJECT}".amd64
rm -rf "${BTF_DIR}"
RESULT="${TEMP_DIR}/custom-archive/"
rm "${RESULT}/.gitignore"
rsync -av "${RESULT}" "${BTF_DIR}"

bash ./btfgen.sh -a arm64 -o "${BPF_OBJECT}".arm64
rsync -av "${RESULT}" "${BTF_DIR}"
popd

go run ./internal/pkg/daemon/bpfrecorder/generate
