#!/usr/bin/env bash
echo "$@" >/tmp/config-virtualbox.tmp

name=$0
echo "$name" | grep -qE 'bash$' && name=config-virtualbox
exec > >(tee -i $name-$(date '+%F-%T').log)
exec 2>&1
export PS4='+ \D{%F %T} '
set -x

read VBOX_VERSION ARCH < /tmp/config-virtualbox.tmp
test -z "${VBOX_VERSION}" && VBOX_VERSION=7.0.26
test -z "$ARCH" && ARCH=amd64

export DEBIAN_FRONTEND=noninteractive
apt-get -qy update

apt-get -qy install build-essential linux-headers-generic dkms

wget -q https://download.virtualbox.org/virtualbox/${VBOX_VERSION}/VBoxGuestAdditions_${VBOX_VERSION}.iso -O /root/VBoxGuestAdditions_${VBOX_VERSION}.iso
wget -q https://download.virtualbox.org/virtualbox/${VBOX_VERSION}/SHA256SUMS -O /root/SHA256SUMS
( cd /root && shasum --ignore-missing -c SHA256SUMS && rm SHA256SUMS )

mount -o loop /root/VBoxGuestAdditions_${VBOX_VERSION}.iso /mnt

if test "$ARCH" = arm64 ; then
   EXT_ARCH=-arm64
fi
cp /mnt/VBoxLinuxAdditions${EXT_ARCH}.run /root
chmod +x /root/VBoxLinuxAdditions${EXT_ARCH}.run
/root/VBoxLinuxAdditions${EXT_ARCH}.run

umount /mnt
rm /root/VBoxGuestAdditions_${VBOX_VERSION}.iso /root/VBoxLinuxAdditions${EXT_ARCH}.run

set +x
